繁体   English   中英

在VBA中循环浏览工作表时选择范围

[英]Selecting a Range while looping through worksheets in VBA

为了这个问题,我已经缩短了我的代码,但是我得到的错误是相同的。

当尝试选择每个工作表的A列中具有数据的单元格并对其进行处理时,在第一个工作表之后出现错误:

Sub quickSub()

Dim sh As Worksheet

For Each sh In Worksheets
    sh.Range("A6", Range("A6").End(xlDown)).Select

''Random bits of code here where I manipulate selection on each worksheet

Next

End Sub

我得到的错误是:

"Run-time error '1004': Method 'Range' of object'_Worksheet' failed.

尝试这个:

sh.Activate
sh.Range("A6", "A" & sh.Range("A6").End(xlDown).row).Select

我确保范围引用在正确的工作表上结束,并且结束了最后的行号并连接了可能不需要的列字母,但可以使调试更加容易。

更新:

添加了激活行。 选择可能需要工作表处于活动状态。

更新2:

这是无需使用select即可执行此操作的“正确”方法。使用此方法直接引用需要在工作表之间移动的工作表数据INSTEAD。 最佳实践将提高您的代码性能

Sub quickSub()

Dim sh As Worksheet

For Each sh In Worksheets
    With sh.Range("A6", "A" & sh.Range("A6").End(xlDown).row)
        '- lines that manipulate the 'selection' in the above with
        .Value = "NewValue"
        .font.bold = true


    End With

''Random bits of code here where I manipulate selection on each worksheet

Next

End Sub

暂无
暂无

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

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