Excel VBA设置variables来select特定工作表中的单元格范围

我一直试图运行一个脚本,通过C列,并修剪单元格中的文本的左侧或右侧的任何空格。 当我运行它时,我得到一个关于设置rr(ss,uu,vv以及当我尝试运行它)的错误。

这里是debugging器发现错误“运行时错误'1004':应用程序定义或对象定义的错误。

Set rr = Worksheets("EOD").Range(Cells(2, 3), Cells(100, 3)) 

我还包括下面的完整代码,以防万一,以提供更好的见解。 我曾与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 

当另一张纸张处于活动状态时,我能够重现您的错误。 您需要完全定义Cells的表单位置,就像您为Range所做的那样。

代替:

 Set rr = Worksheets("EOD").Range(Cells(2, 3), Cells(100, 3)) 

尝试:

 Dim wks1 As Worksheet Set wks1 = Worksheets("EOD") Set rr = wks1.Range(wks1.Cells(2, 3), wks1.Cells(100, 3))