如何在 IF 语句后使用最后两行设置工作表之间的值

how to set values between worksheets after IF statement using 2 last rows

我正在尝试将 sheet 中名为 Hey 的整个列值复制并粘贴到名为 final 的 sheet 中的另一列。

我不想使用复制、粘贴或 select option.However,我的代码只复制第一行。

IntLastRow = Sheets("Hey").Cells(Cells.Rows.Count, "A").End(xlUp).Row
' IntRLastRow = Sheets("Interdiction Review").Cells(Cells.Rows.Count, "A").End(xlUp).Row

If Sheets("Hey").Range("H2") = "" Then
    Sheets("Final").Range("A2").Value = Sheets("Hey").Range("G2:G" & IntLastRow).Value
ElseIf Sheets("Hey").Range("H2") <> "" Then
    Sheets("Final").Range("A2").Value = Sheets("Hey").Range("H2:H" & IntLastRow).Value
EndIf

也许你知道我做错了什么?

我需要将日期从 2 列或更多列复制到位于不同作品中的另一列sheet。

但是,我不确定是否可以在同一行中使用最后一行的 2 个。 我正在尝试这段代码,但只粘贴了 1 行的值。

intrlastrow = Sheets("Final").Cells(Cells.Rows.Count, "A").End(xlUp).Row + 1
 
 Debug.Print intrlastrow
    If Sheets("Hey").Range("AJ2") = "" Then
            Sheets("Final").Range("A" & intrlastrow, "A" & IntLastRow).Value = Sheets("Hey").Range("AI2:AI" & IntLastRow).Value
        ElseIf Sheets("Hey").Range("AJ2") <> "" Then
            Sheets("Final").Range("A" & intrlastrow, "A" & IntLastRow).Value = Sheets("Hey").Range("AJ2:AJ" & IntLastRow).Value
        End If

我需要将来自 sheet 名为 HEY 的 2 个或更多列的值添加到目标 sheet 中的同一列(最终 sheet)

除非您尝试从中插入值的范围与您从中获取值的范围一样大,否则只会复制适合的数据。将您的代码更改为

Option Explicit

Sub test()
    Dim IntLastRow As Long
    
    IntLastRow = Sheets("Hey").Cells(Cells.Rows.Count, "A").End(xlUp).Row
    ' IntRLastRow = Sheets("Interdiction Review").Cells(Cells.Rows.Count, "A").End(xlUp).Row
    
    If Sheets("Hey").Range("H2") = "" Then
        Sheets("Final").Range("A2:A" & IntLastRow).Value = Sheets("Hey").Range("G2:G" & IntLastRow).Value
    ElseIf Sheets("Hey").Range("H2") <> "" Then
        Sheets("Final").Range("A2:A" & IntLastRow).Value = Sheets("Hey").Range("H2:H" & IntLastRow).Value
    End If
End Sub

应该可以解决问题。

您可能注意到我已将 Sheets("Final").Range("A2") 更改为 Sheets("Final").Range("A2:A" & IntLastRow),类似于您决定从哪个范围复制值所做的操作。