Excel 组合FOR和单元格以选择多个单元格

Excel 组合FOR和单元格以选择多个单元格,excel,vba,Excel,Vba,在Excel VBA中,在选择多个单元格时,是否可以组合FOR和单元格?比如说, sub diag() range("a1,b2,c3").select end sub sub diag() for i = 1 to 3 cells(i, i).select next i end sub 这将按对角线方向选择前三个单元格。这里的单元格可以改变范围吗?比如说, sub diag() range("a1,b2,c3").select end sub sub diag() for i = 1 t

在Excel VBA中,在选择多个单元格时,是否可以组合FOR和单元格?比如说,

sub diag()
range("a1,b2,c3").select
end sub
sub diag()
for i = 1 to 3
cells(i, i).select
next i
end sub
这将按对角线方向选择前三个单元格。这里的单元格可以改变范围吗?比如说,

sub diag()
range("a1,b2,c3").select
end sub
sub diag()
for i = 1 to 3
cells(i, i).select
next i
end sub

我试过了,但它只是按顺序选择了A1、B2和C3。提前感谢。

多亏了
Application.Union
函数,您就可以做到这一点了。
下面的代码将选择单元格A1、B2。。。J10

Public子组范围()
'定义范围
将主量程变暗为量程
作为整数的Dim i
对于i=1到10
如果mainRange为空,则
'使用第一个单元格进行范围初始化
设置主范围=单元格(i,i)
其他的
'将新单元格添加到范围中
Set mainRange=Application.Union(mainRange,单元格(i,i))
如果结束
接下来我
'选择最终范围
主范围。选择
端接头

试试这样的方法:

Sub diag()

Dim mysel As Range
For i = 1 To 3
    If mysel Is Nothing Then
    Set mysel = Cells(i, i)
    Else: Set mysel = Union(mysel, Cells(i, i))
    End If
Next i

mysel.Select

End Sub

在这种情况下,您可能需要使用
Union