2016-06-17 1 views
0

私はスプレッドシートに0が入っていますが、いくつかのセルには値があります。これらの値はエラーを示し、これらのエラーの位置を知りたいと思います。これは私のスプレッドシートです:セルのアドレスをループ内に保存する方法

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 

今、私は、各エラーのメッセージボックスを取得し、私は別のスプレッドシートにすべてのエラーのリストを希望しますしかし、私はどのようにループ内のアドレスを保存するかを知りません。また、私はエラーの列のヘッダーを保存したいと思います。

誰かが私を助けてくれることを祈っています - ありがとうございます。

答えて

0
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 

上記のコードは、2次元配列で求めている詳細を集めて、その配列をSubにある2番目のワークシートに出力します。配列を簡単に出力する場所を修正することができます。ここにあなたが理解できなかったものがあれば教えてください。

+0

Daveさんありがとうございます。ほとんど完璧に動作します。私は頭を使って仕事をすることはできませんが、その部分をコメントすれば魅力的に働きます。 私はこのエラーを取得する: [ヘッダーのエラー]、[1] [1]:http://i.stack.imgur.com/XguPW.png私を助けるために時間を割いて 感謝を! – Kristensen

+0

私の間違いは、 'Range'だったときに' Cells'フォーマットで指定しました。上記のコードでこれをソートして、すぐに変更してください。 – Dave

+0

こんにちは、もう一度ヘッダーにエラーは表示されませんが、出力にはヘッダーが含まれていませんが、値とセルのみが含まれています住所。コードを段階的に実行すると、myArrayにヘッダーが含まれていることがわかりますが、他のスプレッドシートにプッシュされていることはわかりません。 – Kristensen

関連する問題