2枚のExcelシートがあり、いくつかの値を比較する必要があります。これは簡単な部分です。このために私は次のコードを使用:その後VBAの2つの配列を比較して別のシートに書き込む
Dim OldLabel() As String, size As Integer, i As Integer, j As Integer
size = WorksheetFunction.CountA(Worksheets(3).Columns(1))
ReDim OldLabel(size)
j = 1
For i = 7 To size
If (InStr(Cells(i, 1).Value, "[") > 0) Then
OldLabel(j) = Cells(i, 1).Value
j = j + 1
End If
Next i
Dim NewLabel() As String, newSize As Integer, k As Integer, l As Integer
newSize = WorksheetFunction.CountA(Worksheets(4).Columns(1))
ReDim NewLabel(newSize)
l = 1
For k = 7 To newSize
If (InStr(Cells(k, 1).Value, "[") > 0) Then
NewLabel(l) = Cells(k, 1).Value
l = l + 1
End If
Next k
を私は2つの配列の値を比較し、それらが同じであるかどうかを確認し、別のシートにそれらを記述する必要があります。私はコードを実行しようとしましたが、動作していないようです。
Dim cont As Integer
cont = 1
For i = 1 To size
For k = 1 To newSize
If (OldLabel(i) = NewLabel(k)) Then
Sheet8.Activate
Range("A1").Select
Cells(cont, 1).Value = OldLabel(i)
cont = cont + 1
End If
Next k
Next i
問題は何ですか?プログラムは予期せぬ反省を与える?あるいは、いくつかのエラー/バグがありますか? 私の最初の考えは、ループで、ハードコードされた数字の代わりに 'LBound'と' UBound'関数を使ってみてください。 –
「うまく動作していないようです」とは特に役に立ちません。予想と実際の出力を掲示してください。 – jsheeran
私はプログラムを実行した後、シートをチェックしてもデータはありません –