繁体   English   中英

如何在Excel 2016的VBA-Macro中将我的答案放在下一行而不覆盖我以前的答案?

[英]How to put my answer in next row without overwriting my previous answer in VBA-Macro in Excel 2016?

我已经在Excel 2016中记录了一个宏,但是,每当我运行此宏时,它都会覆盖我以前的答案,那么我应该如何将新答案放在下一行?

Sub update()
'
' update Macro
'

'
    Range("B4:G4").Select
    Selection.Copy
    Sheets("Sheet4").Select
    Range("B2").Select
    ActiveSheet.Paste
    Sheets("Sheet3").Select
    Range("B7:G7").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Sheet4").Select
    Range("B3").Select
    ActiveSheet.Paste
End Sub

只需添加lastRow1行即可始终设置lastRow +1(空单元格)

Sub updateM()

    Dim lastRow1 As Long

    lastRow1 = Sheets("Sheet4").Cells(Rows.Count, 2).End(xlUp).row + 1
    Range("B4:G4").Copy Sheets("Sheet4").Range("B2")
    Sheets("Sheet3").Range("B7:G7").Copy Sheets("Sheet4").Range("B3").Select

End Sub

这应该做。 您应尝试按Pᴇʜ所说的SelectActivate ,这是一个有关如何做的示例:

Option Explicit
Sub update()
'
' update Macro
'

'
    Dim Answer1 As Range, Answer2 As Range

    With ThisWorkbook.Sheets("sheet3")
        Set Answer1 = .Range("B4:G4") 'set the range for the first answer
        Set Answer2 = .Range("B7:G7") 'set the range for the second answer
    End With

    Dim LastRow As Long
    With ThisWorkbook.Sheets("Sheet4")
        'Copy the first answer
        LastRow = .Cells(.Rows.Count, 2).End(xlUp).Row + 1 'calculate next blank cell
        Answer1.Copy .Cells(LastRow, 2)
        'Copy the second answer
        LastRow = .Cells(.Rows.Count, 2).End(xlUp).Row + 1 'calculate next blank cell
        Answer2.Copy .Cells(LastRow, 2)
    End With

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM