循环2套工作表,执行计算,并填充第3组工作表

时间:2015-05-13 18:14:54

标签: excel vba loops excel-vba

我试图比较工作表中的数据。我在工作表1.a和工作表1.b中有MERGEC14的值。我尝试使用C19从工作表1.b中列for each loop中的单元格中减去工作表1.a中列C中的单元格,并填充结果在工作表1.c中的C列中我试图在这个过程中使用循环,因为我有50个带有a和b版本的工作表。下面的vba代码用结果填充前两个工作表#.c,但在所有其他工作表#c上都失败了。非常感谢任何建议。

以下是代码的结构:

C

致以最诚挚的问候,

1 个答案:

答案 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