2017-04-23 446 views
1

我期待比较两列中位于不同工作表中的值。当找到匹配项时,我想减少与匹配值位于同一行的第三列中的值。我知道如何在下面进行硬编码,但我宁愿不必为Excel中的每一行都包含此代码。VBA Excel比较两个不同工作表中的值

If Range("g12").Value = Worksheets("Inventory Levels").Range("b2").Value Then 
    Worksheets("Inventory Levels").Range("c2").Value = Worksheets("Inventory Levels").Range("c2").Value - 1 
End If 

回答

1

你可以在一个简单的循环中做到这一点,详见我的评论。

Dim i as Integer 
' Use "With" to fully qualify your sheet objects. 
With ThisWorkbook 
' Loop over rows 2 to 20 (change this as necessary) 
For i = 2 to 20 
    ' Use ampersand (&) for concatenation of strings 
    If .Sheets("Sheet1").Range("G" & (i + 10)).Value = .Sheets("Inventory Levels").Range("B" & i).Value Then 
     .Sheets("Inventory Levels").Range("C" & i).Value = .Sheets("Inventory Levelts").Range("C" & i).Value - 1 
    End If 
Next i 
End With 
相关问题