选择随机单元格并将其存储在excel vba的范围变量中
现在的问题是,我在excel表格中选择了一些随机单元格作为不规则区域。我得到的第一个单元格地址正确,但下一个单元格地址是第一个单元格的相邻单元格,而不是我选择的下一个单元格 基本上,我希望将不规则范围中的值收集到一个数组中。如果我能得到在这个不规则范围内选择的每个单元格的地址,那将非常有帮助选择随机单元格并将其存储在excel vba的范围变量中,excel,vba,range,selection,formula,Excel,Vba,Range,Selection,Formula,现在的问题是,我在excel表格中选择了一些随机单元格作为不规则区域。我得到的第一个单元格地址正确,但下一个单元格地址是第一个单元格的相邻单元格,而不是我选择的下一个单元格 基本上,我希望将不规则范围中的值收集到一个数组中。如果我能得到在这个不规则范围内选择的每个单元格的地址,那将非常有帮助 简单地说,我想要的是,如果我选择单元格e1、g4、d7、r1、t3,我应该在vba程序中获得一个仅包含这5个单元格的数组,并且该数组应该不能访问除所选单元格之外的其他单元格 我不太清楚您到底在尝试什么,但我
简单地说,我想要的是,如果我选择单元格e1、g4、d7、r1、t3,我应该在vba程序中获得一个仅包含这5个单元格的数组,并且该数组应该不能访问除所选单元格之外的其他单元格 我不太清楚您到底在尝试什么,但我相信这可能有助于您了解脚本运行时的行为
Sub selecting()
Dim r as Range
Set r = Application.Selection
MsgBox r.Cells(1,1).Address(false,false)
MsgBox r.Cells(1,2).Address(false,false)
MsgBox r.Cells(2,1).Address(false,false)
End Sub
也许您可以对此进行调整,直到获得所需的行为?一旦选定的范围存储在范围变量中,我想收集选定单元格的地址。例如:我选择了D4、F2、G7。。。。然后我应该能够获得一个数组,从中我只能访问这些选定的单元格,而不能访问其他单元格。发生的情况是,范围变量存储从D4开始的所有单元格。这意味着,如果我访问range.cells1,1.Addressfalse,false,它会给出D4,但当我尝试range.cells2,1.Addressfalse,false时,它会给出D5,尽管它应该只给我选择的值。我从未选择过D5。
Sub selecting()
Dim myArray(0 To 100, 0 To 1) As Variant
Dim rngSelected As Range
Set rngSelected = Application.Selection
Dim rng As Range
For Each rng In rngSelected
Dim counter As Integer
Debug.Print "The value of cell " & counter & " is " & rng.Value & _
" , and the address is " & rng.Address(False, False)
myArray(counter, 0) = rng.Value
myArray(counter, 1) = rng.Address(False, False)
counter = counter + 1
Next rng
End Sub