Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择随机单元格并将其存储在excel vba的范围变量中_Excel_Vba_Range_Selection_Formula - Fatal编程技术网

选择随机单元格并将其存储在excel vba的范围变量中

选择随机单元格并将其存储在excel vba的范围变量中,excel,vba,range,selection,formula,Excel,Vba,Range,Selection,Formula,现在的问题是,我在excel表格中选择了一些随机单元格作为不规则区域。我得到的第一个单元格地址正确,但下一个单元格地址是第一个单元格的相邻单元格,而不是我选择的下一个单元格 基本上,我希望将不规则范围中的值收集到一个数组中。如果我能得到在这个不规则范围内选择的每个单元格的地址,那将非常有帮助 简单地说,我想要的是,如果我选择单元格e1、g4、d7、r1、t3,我应该在vba程序中获得一个仅包含这5个单元格的数组,并且该数组应该不能访问除所选单元格之外的其他单元格 我不太清楚您到底在尝试什么,但我

现在的问题是,我在excel表格中选择了一些随机单元格作为不规则区域。我得到的第一个单元格地址正确,但下一个单元格地址是第一个单元格的相邻单元格,而不是我选择的下一个单元格

基本上,我希望将不规则范围中的值收集到一个数组中。如果我能得到在这个不规则范围内选择的每个单元格的地址,那将非常有帮助


简单地说,我想要的是,如果我选择单元格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