如何在VBA中将列/行索引用作范围
像使用如何在VBA中将列/行索引用作范围,vba,Vba,像使用单元格(1,1)而不是范围(“A1”),在VBA中使用列/行索引作为范围的最佳方法是什么 我提出了两种表示范围的解决方案(“A:A”): 范围(单元格(1,1),单元格(列(1)。行数,1)) Union(第(1)列、第(1)列)) 有更好、更简洁的解决方案吗 编辑:注意到TecScript的回复,并感谢您的回复。我已经试过了,但它给出了以下错误: 运行时错误“13”:类型不匹配 代码如下: Sub tfind() Dim r1 As Range Set r1 = Co
单元格(1,1)
而不是范围(“A1”)
,在VBA中使用列/行索引作为范围的最佳方法是什么
我提出了两种表示范围的解决方案(“A:A”):
范围(单元格(1,1),单元格(列(1)。行数,1))
Union(第(1)列、第(1)列))
Sub tfind()
Dim r1 As Range
Set r1 = Columns(1)
MsgBox mCount("Test:", r1)
End Sub
Function mCount(find As String, lookin As Range) As Long
Dim cell As Range
For Each cell In lookin
If (Left(cell.Value, Len(find)) = find) Then mCount = mCount + 1
Next
End Function
尽管如果第三行:
Set r1 = Columns(1)
更改为:
Set r1 = Union(Columns(1), Columns(1))
没有最好的方法可以做到这一点,但有一些方法可以根据您的需要使用。例如,如果要在行和列之间循环,最好使用
单元格()
:
另一方面,根据您的需要,您可以通过任何一种方式引用类似于范围(“A1:B3”)
的范围。如果您只是需要参考,您应该使用范围(“A1:B3”)
。如果需要处理行和列,最好使用范围(单元格(1,1),单元格(3,2))
这一切都是关于可读性和功能性
对于您的问题,您可能希望使用以下选项:
-->范围(“A:A”)
列(1)
-->范围(“A:C”)
范围(第(1)列、第(3)列))
或列(“A”)。单元格
列(1)。单元格
.Cells
完美!又来了
Sub RowTimesColumn()
Dim i As Long, j As Long
For i = 1 To 10
For j = 1 To 5
Cells(i, j) = i * j
Next j
Next i
End Sub