我试图比较工作表中的数据。我在工作表1.a和工作表1.b中有MERGE
到C14
的值。我尝试使用C19
从工作表1.b中列for each loop
中的单元格中减去工作表1.a中列C
中的单元格,并填充结果在工作表1.c中的C
列中我试图在这个过程中使用循环,因为我有50个带有a和b版本的工作表。下面的vba代码用结果填充前两个工作表#.c,但在所有其他工作表#c上都失败了。非常感谢任何建议。
以下是代码的结构:
C
致以最诚挚的问候,
答案 0 :(得分:0)
将counter
的初始化移动到for each
循环内部,以便每次到达新工作表时重置它。因为你不需要它也可以摆脱第二个计数器。
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
For Each sheet_name In Sheets("WS_QA").Range("A:A")
counter = 1
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(counter, 1).Value).Cells(r, 3).Value
counter = counter + 1
Next r
End With
End If
Next sheet_name
Application.ScreenUpdating = True
End Sub