Dim*_*are 1 excel vba excel-vba
我一直在尝试运行一个遍历C列的脚本,并修剪出单元格中文本左侧或右侧的任何空格.当我运行它时,我得到一个关于set rr的错误(ss,uu,vv以及当我尝试运行它时).
这是调试器发现错误"运行时错误'1004'的地方:应用程序定义的错误或对象定义的错误.
Set rr = Worksheets("EOD").Range(Cells(2, 3), Cells(100, 3))
Run Code Online (Sandbox Code Playgroud)
我还包括下面的完整代码,以防万一可能提供更好的见解.我曾经使用过JS和PHP,但VBA让我感到困惑.
提前感谢您提供的任何帮助.
中号
Sub Workbook_Open()
Dim r As Range
Dim s As Range
Dim t As Range
Dim u As Range
Dim v As Range
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer
Dim e As Integer
Dim rr As Range
Dim ss As Range
Dim tt As Range
Dim uu As Range
Dim vv As Range
Set rr = Worksheets("EOD").Range(Cells(2, 3), Cells(100, 3))
Set ss = Worksheets("9AM Report").Range(Cells(2, 3), Cells(100, 3))
Set uu = Worksheets("1PM CST").Range(Cells(2, 3), Cells(100, 3))
Set vv = Worksheets("3PM ST").Range(Cells(2, 3), Cells(100, 3))
Set tt = Worksheets("11AM Report").Range(Cells(2, 3), Cells(100, 3))
For Each r In rr
r = Trim(r)
a = a + 1
If a = 199 Then Call RefreshAllPivotTables
If a > 200 Then End
Next
For Each s In ss
s = Trim(s)
b = b + 1
If b = 199 Then Call RefreshAllPivotTables
If b > 200 Then End
Next
For Each t In tt
t = Trim(t)
c = c + 1
If c = 199 Then Call RefreshAllPivotTables
If c > 200 Then End
Next
For Each u In uu
u = Trim(u)
d = d + 1
If d = 199 Then Call RefreshAllPivotTables
If d > 200 Then End
Next
For Each v In vv
v = Trim(v)
e = e + 1
If e = 199 Then Call RefreshAllPivotTables
If e > 200 Then End
Next
End Sub
Sub RefreshAllPivotTables()
Dim PT As PivotTable
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
For Each PT In WS.PivotTables
PT.RefreshTable
Next PT
Next WS
End Sub
Run Code Online (Sandbox Code Playgroud)
当其他工作表处于活动状态时,我能够重现您的错误.您需要完全Cells像您所做的那样完全定义工作表位置Range.
代替:
Set rr = Worksheets("EOD").Range(Cells(2, 3), Cells(100, 3))
Run Code Online (Sandbox Code Playgroud)
尝试:
Dim wks1 As Worksheet
Set wks1 = Worksheets("EOD")
Set rr = wks1.Range(wks1.Cells(2, 3), wks1.Cells(100, 3))
Run Code Online (Sandbox Code Playgroud)