如何在循环中保存单元格地址

How to save cell address in a loop

我有一个全是零的电子表格,但有些单元格有值。这些值表示错误,我想知道这些错误位于何处。这是我的电子表格:

My spreadsheet

这是我的代码:

Sub FindErrors()

Worksheets("Realisering Flow - aggregeret").Activate

For Each c In Range("EC3:IX1372").Cells
  If c.Value <> 0 Then
    Value = c.Value
    Address = c.Address

    MsgBox "Der er fundet fejl i celle " & Address & _
       "; som har værdien " & Value
  End If

Next

Worksheets("OPS_Volume").Activate

MsgBox "Der er ikke nogen fejl"

End Sub

现在我得到每个错误的消息框,但我想要一个不同电子表格中所有错误的列表,但我不知道如何在循环中保存地址。此外,我想为错误列保存 header。

我希望有人能帮助我 - 提前致谢。

Sub FindErrors()
Dim myArray() ' declare array as dynamic so we can adjust its size later
ReDim myArray(2,0) ' redim it so it's 2 dimensional
With Worksheets("Realisering Flow - aggregeret")

    For Each c In .Range("EC3:IX1372").Cells
        If c.Value <> 0 Then
            Value = c.Value
            Address = c.Address
            Header = .Cells(1, c.Column).Value

            'MsgBox "Der er fundet fejl i celle " & Address; som har værdien " & Value
            myArray(0, UBound(myArray,2)) = Value
            myArray(1, UBound(myArray,2)) = Address
            myArray(2, UBound(myArray,2)) = Header
            ReDim Preserve myArray(2, UBound(myArray, 2)+1) ' increase size of array by 1
      End If

    Next
End With

Dim Destination As Range
Set Destination = Worksheets("OPS_Volume").Range("A1") ' point Range to A1
' Now push the array into OPS_Volume starting from A1 (adjust Destination as necessary) 
Destination.Resize(UBound(myArray, 2)+1, UBound(myArray, 1)+1).Value = myArray
'MsgBox "Der er ikke nogen fejl"

End Sub

以上代码将收集您在二维数组中要求的详细信息,然后将该数组输出回您在 Sub 中的第二个工作表。您可以很容易地修改它输出数组的位置;让我知道这里有什么你不明白的吗?