我目前正在解决
类型不匹配错误
在我写的宏中,我写了一个简短的子程序来深入研究具体问题。该子程序应循环遍历所有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
相反,这会填充A列中的每个单元格1.在调试模式下单步执行它会显示rCell不是引用单个单元格,而是引用整个列。
我发现如果我更换
Set rRange = ThisWorkbook.Worksheets(1).Columns(1)
与
Set rRange = ThisWorkbook.Worksheets(1).Range("A1:A100")
宏按预期工作,但我更喜欢能够在我的生产代码中使用Columns()或类似的东西。
我是否使用了Columns()属性不正确,如果是,是否有一个好的解决方法?
答案 0 :(得分:3)
从这些变化开始:
Set rRange = ThisWorkbook.Worksheets(1).Columns(1).Cells
Dim i As Long
使用.Cells
让我们遍历列中的单元格而不是工作表中的列。