我目前正在努力让 For Each 方法在 Excel 2010 的 VBA 中工作。
我以前使用过该方法并且没有问题,但是对于我的生活,我似乎无法让我编写的新功能正常工作。
这里是:
Sub A2_Color_Bob()
Dim sh As Worksheet
For Each sh In Sheets
Range("A2").Value = "Bob"
Next sh
End Sub
我目前正在努力让 For Each 方法在 Excel 2010 的 VBA 中工作。
我以前使用过该方法并且没有问题,但是对于我的生活,我似乎无法让我编写的新功能正常工作。
这里是:
Sub A2_Color_Bob()
Dim sh As Worksheet
For Each sh In Sheets
Range("A2").Value = "Bob"
Next sh
End Sub
它不起作用的原因是您没有指定此行中的哪个工作表
Range("A2").Value = "Bob"
因此,将使用默认工作表,即ActiveSheet
因此,正如其他人也提到的,它应该改为
sh.Range("A2").Value = "Bob"
我认为您的问题是您的 Range 是全局的,但您正在尝试设置特定单元格的值。
做了一些检查,这行得通。
子 A2_Color_Bob()
暗淡为工作表
对于表格中的每个 sh.Cells(1, 1).Value = "bob" Next sh
结束子
将工作表中的每个 sh 更改为 ...在工作表中
或者也可以做 dim i 只要
for i=1 to worksheets.count
sheets(i).range("A2")=bob"
next i