【发布时间】:2018-08-23 01:51:48
【问题描述】:
我正在尝试遍历一系列工作表。但是,从工作表的范围中选择工作表时出现错误。
Sub Calc_sheets()
Dim sheetnames As Variant
sheets("Calc_sheets").Select
'sheetnames = Worksheets("Calc_sheets").Range("a2:a4").Value # returns an error in row "Sheet = sheetnames(k)"
sheetnames = Array("Sheet1", "Sheet2") # works fine
For k = 0 To Application.CountA(sheetnames) - 1
Sheet = sheetnames(k)
sheets(Sheet).Select
ActiveSheet.Calculate
Next k
End Sub
你知道怎么解决吗?
最好的,
【问题讨论】:
-
未经测试,但我想你只需要说,
Set sheetnames = Worksheets... -
无论如何使用
.Select和ActiveSheet.都不是一个好主意。见How to avoid using Select in Excel VBA macros - Stack Overflow。 -
您的阵列基础是什么?如果数组是
sheetnames(1)="Sheet1": sheetnames(2)="Sheet2",那么sheetnames(0)将返回错误。使用Lbound和Ubound进行检查
标签: arrays vba excel loops range