繁体   English   中英

Excel VBA设置变量以选择特定工作表中的单元格区域

[英]Excel VBA set variable to select a range of cells in a specific worksheet

我一直在尝试运行一个脚本,该脚本遍历C列并在单元格中的文本左侧或右侧修剪掉任何空格。 当我运行它时,我收到关于设置rr的错误(当我尝试运行它时,也会出现SS,UU,VV)。

调试器在这里找到错误“运行时错误'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

当另一个工作表处于活动状态时,我能够重现您的错误。 您需要像对Range一样完全定义Cells的图纸位置。

代替:

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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM