VBA LOOP和If语句

我一直试图解决这个问题,帮助堆栈或MS Docmentation,但不知道我做错了什么。

我有一个文件有两个不同的表格 – 一个叫做Query3,另一个是Detail ICL。

我想要做的是:

  • 如果来自ICL的列C =列A Query3
  • 从ICL和D列中求和N列从Query3中将结果粘贴到ICL的W列中
  • 如果不是ICL的N列= ICL的W列。 请在下面find我一直在努力的代码。

    Dim ICL As Worksheet Dim Qry3 As Worksheet Dim LastRow1 As Integer Dim LastRow2 As Integer Dim k As Range Dim i As Integer Dim j As Integer Set ICL = ActiveWorkbook.Sheets("Detail ICL <current month>") Set Qry3 = ActiveWorkbook.Sheets("Query3") LastRow1 = Qry3.Range("A" & Qry3.Rows.Count).End(xlUp).Row LastRow2 = ICL.Range("C" & ICL.Rows.Count).End(xlUp).Row For i = 2 To LastRow2 For j = 2 To LastRow1 For Each k In ICL.Range("C2" & LastRow2).Cells If k = Qry3.Range("A2" & LastRow1).Cells Then ICL.Range("W" & i) = ICL.Range("N" & i) + Qry3.Range("B" & j) Else ICL.Range("W" & i) = ICL.Range("N" & i) End If Next Next j Next i 

我得到一个输出,但这不是我所期望的。 我手动做了计算,以检查答案,但我甚至不明白差异来自哪里。

谢谢你的帮助。