VBA LOOP和If Statement

时间:2016-02-12 09:55:18

标签: excel vba

我一直试图通过Stack或MS Docmentation的帮助来解决这个问题,但不知道我做错了什么。

我有一个包含两个不同表格的文件 - 一个名为Query3,另一个名为Detail ICL。

我想做的是:

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

    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
    

我正在获得输出,但这不是我所期待的。我手动完成了计算,检查了答案,但我甚至不知道差异来自何处。

感谢您的帮助。

0 个答案:

没有答案