gpt4 book ai didi

vba - Excel VBA : Selecting Different Ranges in Loop

转载 作者:行者123 更新时间:2023-12-04 22:05:07 24 4
gpt4 key购买 nike

我试图在一个循环中选择两个不同的范围(即第一次迭代选择一个范围,第二次迭代选择另一个范围)。这是我的尝试,看看我是否可以做一个简单的任务,比如一个接一个地选择两个范围:

Sub SelectingTwoRanges()
Dim i As Integer
Dim m As Integer
Dim n As Integer
For i = 1 To 2
m = i * 50 - 48
n = i * 50 + 1
Range(Cells(m, 1), Cells(n, 2)).Select
Next i

End Sub

这给出了错误:“对象'_Global'的方法'Cells'失败”

我以前试过这样:
Sub SelectingTwoRanges()
Dim i As Integer
Dim m As Integer
Dim n As Integer
For i = 1 To 2
m = i * 50 - 48
n = i * 50 + 1
Range("Am:Bn").Select
Next i

End Sub

或者:
Sub SelectingTwoRanges()
Dim i As Integer
Dim m As Integer
Dim n As Integer
For i = 1 To 2
m = i * 50 - 48
n = i * 50 + 1
Range("A$n:B:m").Select
Next i

End Sub

以上都没有奏效。我认为我的问题是在字符串中使用与循环相关的变量(我试图通过在“Range()”中使用“Cells(#,#)...”形成来避免这种情况。但现在我只是卡住了。

这可能吗?

最佳答案

您可能会收到“对象 '_Global' 的方法 'Cells' 失败”错误,因为您的 Cells() 方法未附加到对象。根据这篇文章(Method 'Range' of object '_Global' failed. error),您可以通过使用“activeSheet”来避免这种情况。

Sub SelectingTwoRanges2()
Dim i As Integer
Dim m As Integer
Dim n As Integer
For i = 1 To 2
m = i * 50 - 48
n = i * 50 + 1
With ActiveSheet
.Range(.Cells(m, 1), .Cells(n, 2)).Select
End With
Next i
End Sub

至于你的其他例子;你完全正确。在字符串中包含变量名根本不会引用该变量。您可以使用以下格式连接字符串(VBA 会自动尝试将变量值转换为连接中的字符串)
Range("A" & m & ":B" & n).Select 

我个人喜欢使用 CStr() 来确保 VBA 将值转换为字符串
Range("A" & CStr(m) & ":B" & CStr(n)).Select

关于vba - Excel VBA : Selecting Different Ranges in Loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24435445/

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