VBA没有粘贴价值

时间:2017-05-30 13:30:09

标签: vba excel-vba excel

我已从文件中复制了一些数据,现在我想在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

1 个答案:

答案 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"),则会更好。