我目前正在解决一个
类型不匹配错误
在我正在编写的宏中,我编写了一个简短的子例程来深入了解特定问题。此子例程应遍历所有列 A,在第 1-10 行中输入数字 1-10。
Sub looptest()
Dim rRange As Range
Dim rCell As Range
Dim i As Integer
Set rRange = ThisWorkbook.Worksheets(1).Columns(1)
i = 0
For Each rCell In rRange
If i < 10 Then
i = i + 1
rCell.Value2 = i
End If
Next rCell
End Sub
相反,这会用 1 填充 A 列中的每个单元格。在调试模式下单步执行它表明,rCell 引用整个列,而不是引用单个单元格。
我发现如果我更换
Set rRange = ThisWorkbook.Worksheets(1).Columns(1)
跟
Set rRange = ThisWorkbook.Worksheets(1).Range("A1:A100")
宏按预期工作,但是我希望能够在我的生产代码中使用 Columns(( 或类似的东西。
我是否不正确地使用了 Columns(( 属性,如果是这样,是否有好的解决方法?
从这些更改开始:
Set rRange = ThisWorkbook.Worksheets(1).Columns(1).Cells
Dim i As Long
使用.Cells
可以循环访问列中的单元格,而不是工作表中的列。