我試圖跨工作表比較數據。在工作表1.a和工作表1.b中,我有從C14
到C19
的值。我試圖使用for each loop
從工作表1.b中列C
中的單元格中減去工作表1.a中列C
中的單元格,並在工作表1.c中填充列C
中的結果。我正在嘗試爲這個過程使用循環,因爲我有50個帶有a和b版本的工作表。下面的vba代碼用結果填充前兩個工作表#.c,但在所有其他工作表#.c中都失敗。任何建議,非常感謝。循環播放兩組工作表,執行計算並填充第三組工作表
這裏是代碼的結構:
Sub DataSubtract()
Application.ScreenUpdating = False
Dim sheet_name As Range
Dim sheet_name2 As Range
Dim sheet_name3 As Range
Set sheet_name2 = Sheets("WS_QA").Range("B:B")
Set sheet_name3 = Sheets("WS_QA").Range("C:C")
'Counter 1
Dim counter As Long
counter = 1
'Counter 2 for sheet_name3
Dim counter2 As Long
counter2 = 1
'Row
Dim r As Long
For Each sheet_name In Sheets("WS_QA").Range("A:A")
If sheet_name.Value = "" Then
Exit For
Else
With Sheets(sheet_name.Value)
'Column C
For r = 14 To 39
.Cells(r, 3).Value = Sheets(sheet_name2(counter, 1).Value).Cells(r, 3).Value - Sheets(sheet_name3(counter2, 1).Value).Cells(r, 3).Value
counter = counter + 1
counter2 = counter2 + 1
Next r
End With
End If
Next sheet_name
Application.ScreenUpdating = True
End Sub
最好的問候,
現在'counter'和'counter2'做的是完全一樣的東西。 'counter2'應該在for循環之外嗎?我猜你想將每張紙上的計數器重置爲1 – chancea
是的,猜測我根本不需要第二個計數器。 – user3242245