作者:悍受蓁 | 来源:互联网 | 2023-05-22 17:44
我可以将多个工作表中的特定单元格设置为相同的值,而不使用类似以下内容的循环:
Sub ThisWorks()
Sheets(Array("Sheet1", "Sheet3")).Select
Sheets("Sheet1").Activate
Range("B9").Select
ActiveCell.FormulaR1C1 = "=""x"""
End Sub
运行上面的宏在Array()中包含的工作表中的所有B9中放置相同的值
我试图通过创建和使用与上述代码等效的Object来做同样的事情:
Sub ThisPartiallyWorks()
Dim obj As Object
Set obj = Sheets(Array("Sheet1", "Sheet3"))
obj.Select
Range("A2").Formula = "=""x"""
End Sub
这样运行没有错误,但只有一个工作表在所需的单元格中获得="x".
我究竟做错了什么??
编辑#1
瓦西里的帖子给了我线索................这个版本似乎工作:
Sub Finally()
Dim obj As Object
Set obj = Sheets(Array("Sheet1", "Sheet3"))
obj.Select
obj(1).Activate
Range("B9").Select
ActiveCell.FormulaR1C1 = "=""x"""
End Sub
虽然这似乎违反了Select可以避免的概念.