我是否不正确地使用了 Columns() 属性,如果是这样,是否有好的解决方法?



我目前正在解决一个

类型不匹配错误

在我正在编写的宏中,我编写了一个简短的子例程来深入了解特定问题。此子例程应遍历所有列 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可以循环访问列中的单元格,而不是工作表中的列。

相关内容

最新更新