我已从文件中复制了一些数据,现在我想在VBA的帮助下将其粘贴到已有一些数据的文件中。我希望复制的数据低于以前的数据。但它并没有粘贴复制的数据范围。
我该如何处理?
这是我的代码:
Sub NewWorkshet()
'
' NewWorkshet Macro
'
' Keyboard Shortcut: Ctrl+t
Dim MyFile As String
MyFile = Application.GetOpenFilename()
Workbooks.Open (MyFile)
ActiveSheet.Range("$A$1:$O$3339").AutoFilter Field:=2,
Criteria1:="318"
Range("A2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("CodeCopy.xlsx").Activate
Dim sName As String
Dim sFound As Boolean
sName = InputBox(prompt:="Enter sheet name to find in workbook:", Title:="Sheet search")
If sName = "" Then Exit Sub
sFound = False
On Error Resume Next
ActiveWorkbook.Sheets(sName).Select
' Remove Filter
ActiveSheet.Range("$A$1:$S$6274").AutoFilter Field:=17
Range("B2").Select
Selection.End(xlDown).Select
Selection.Offset(1, -1).Select
varTemp = ActiveCell.Address
ActiveSheet.Range(varTemp).PasteSpecial
End Sub
答案 0 :(得分:0)
如果列B在所有单元格中都有数据(没有单元格留空),您可以简单地使用(不使用所有不必要的Select
)。
ActiveSheet.Range("B2").End(xlDown).Offset(1, -1).PasteSpecial
如果你想在B列中的数据的最后一行之后粘贴,并且中间有一些空白单元格,你最好使用:
Cells(Rows.Count, "B").End(xlUp).Offset(1, -1).PasteSpecial
注意:如果您不依赖ActiveSheet
,而是使用完全限定的对象,例如Worksheets("YourSheetName")
,则会更好。