我正在
1004错误
在运行下面的宏时,在行中
Worksheets("Testable").Range(Range("A2"), Range("A2").End(xlDown)).Select
Sub colour()
Dim cell As Range
Worksheets("Testable").Range(Range("A2"), Range("A2").End(xlDown)).Select
For Each cell In Selection
cell.EntireRow.Interior.ColorIndex = 33
Next cell
End Sub
答案 0 :(得分:3)
工作表的第一个Select
或Activate
。然后Select
范围。
这是一个有效的例子:
Sub colour()
Dim cell As Range
Worksheets("Testable").Activate
Worksheets("Testable").Range(Range("A2"), Range("A2").End(xlDown)).Select
For Each cell In Selection
cell.EntireRow.Interior.ColorIndex = 33
Next cell
End Sub
编辑#2:
要避免循环和选择,请使用以下内容:
Sub colourAlternative()
Dim cell As Range
With Worksheets("Testable")
Set cell = Range(.Range("A2"), .Range("A2").End(xlDown)).EntireRow
End With
cell.Interior.ColorIndex = 33
End Sub
这里有三个问题:
Select
失败Select
答案 1 :(得分:1)
您将在下面找到一个简单且万无一失的(基于原始问题中的详细信息)完成任务的方法:
With Worksheets("Testable")
.Range(.Range("A2"),.Range("A2").End(xlDown)).EntireRow.InteriorColorIndex = 33
End With
你在行
中出错的原因Worksheets("Testable").Range(Range("A2"), Range("A2").End(xlDown)).Select
是因为语句的两个Range("A2")
部分是不合格的,Excel不知道如何处理它们(特别是如果Testable
表不是活动表)。通过以上述方式对它们进行限定,您可以避免选择对象并直接使用它,从而优化代码执行。