gpt4 book ai didi

vba - 如何在 VBA 中使用列/行索引作为范围

转载 作者:行者123 更新时间:2023-12-05 02:18:41 27 4
gpt4 key购买 nike

就像使用 Cells(1, 1) 而不是 Range("A1") 一样,在 VBA 中使用列/行索引作为范围的最佳方法是什么?

我提出了 2 种解决方案来表示 Range("A:A"):

  • Range(Cells(1, 1), Cells(Columns(1).Rows.count, 1))
  • 联合(列(1),列(1))

有没有更好更简洁的方案?

编辑: 注意到 Tehscript 的回复并感谢您的回复。我已经尝试过了,但出现以下错误:

Run-time error '13': Type mismatch.

代码如下:

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

尽管如果第 3 行它工作正常:

Set r1 = Columns(1)

更改为:

Set r1 = Union(Columns(1), Columns(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

另一方面,您可以根据需要以任何一种方式引用范围,例如 Range("A1:B3")。如果您只需要引用,您应该使用 Range("A1:B3")。如果您需要调整行和列,最好使用 Range(Cells(1, 1), Cells(3, 2))

一切都与可读性和功能有关。

对于您的问题,您可能希望使用以下内容:

  • 范围("A:A") --> 列(1)

  • Range("A:C") --> Range(Columns(1), Columns(3))

编辑:您正在遍历 A 列中的单元格,在这种情况下您需要使用:

  • Columns("A").CellsColumns(1).Cells

关于vba - 如何在 VBA 中使用列/行索引作为范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44349657/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com