我正在尝试编写代码以查找工作簿中的下一个空闲行,以将4个数据单元格从一个工作簿复制到另一个工作簿。
当我第一次运行它时,我使用的代码运行良好(工作簿中没有任何内容)。它选择A2并粘贴到4个数据单元中。但是,当我尝试再次运行相同的宏时,它选择的是B2,而不是A3?
我以前多次使用过此功能,但之前从未见过这样的功能。我的代码在下面。
'
' Macro6 Macro
'
Dim fRow As Long
With ActiveSheet
fRow = .Cells(.Rows.Count, 1).End(xlUp).Row
.Cells(fRow).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues
End With
End Sub
答案 0 :(得分:2)
问题在于Cells
需要一行和列,例如.Cells(fRow, "A")
Option Explicit
Public Sub PasteRows()
With ActiveSheet
Dim fRow As Long
fRow = .Cells(.Rows.Count, 1).End(xlUp).Row
.Cells(fRow, "A").Offset(1, 0).PasteSpecial Paste:=xlPasteValues
End With
End Sub
也不要使用.Select
,这是一个不好的做法:您可能会从阅读中受益
How to avoid using Select in Excel VBA。
或者使用以下更短的内容:
Option Explicit
Public Sub PasteRows()
With ActiveSheet
.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
End With
End Sub