微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我试图将名为hey的工作表中的全部列值复制并粘贴到名为final的工作表中的其他列中。

我不想使用复制,粘贴或选择选项。但是,我的代码仅复制第一行。

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列或更多列复制到其他工作表中的另一列。

但是,我不确定是否可以在同一行中使用最后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

我需要将名为hey的工作表中的2列或更多列的值添加到目标工作表(最终工作表)的同一列中

解决方法

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

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),这与您决定要从中复制值的范围所做的操作类似。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。