首页 文章

在VBA中复制和粘贴特定列

提问于
浏览
-1

我是VBA的新手,关于粘贴列我有一个非常简单的问题 . 我想在一张纸上复制一些列(A,C,D,Q:T)并将它们粘贴到另一张纸上 . 但是,当我粘贴它们时,列B始终粘贴在另一个工作表中 . 我无法弄清楚这是怎么发生的,我没有选择B.这是我的代码:

Private Sub cmdselectfile_Click()
    Dim Filepath As Variant
    Dim ws As Worksheet
    Dim wb As Workbook

    Filepath = Application.GetOpenFilename(FileFilter:="Excel Files, *.xls, All files (*.*), *.*", Title:="Please select a file...")
    If VarType(Filepath) = vbString And Filepath <> Empty Then
        Set wb = Workbooks.Open(Filepath)       'active file
        Union(Columns("A:A"), Columns("C:D"), Columns("Q:T")).Select
        Selection.Copy
        wb.Close
        With ThisWorkbook
             Set ws = ThisWorkbook.Worksheets("data")
             ws.Columns("A:G").PasteSpecial
        End With
        Exit Sub
    Else
        MsgBox "Incorrect Input, Please select the file again"
        Exit Sub
    End If
End Sub

谁能帮助我?

1 回答

  • 0

    嗨试试这个代码......

    Private Sub cmdselectfile_Click()
        Dim Filepath As Variant
        Dim ws As Worksheet
        Dim wb As Workbook
    
        Filepath = Application.GetOpenFilename(FileFilter:="Excel Files, *.xls, All files (*.*), *.*", Title:="Please select a file...")
        If VarType(Filepath) = vbString And Filepath <> Empty Then
            Set wb = Workbooks.Open(Filepath)       'active file
            Union(Range("A1").EntireColumn, Range("C1:D1").EntireColumn, Range("Q1:T1").EntireColumn).Copy Destination:=ThisWorkbook.Sheets("data").Range("A1")
            wb.Close
            Exit Sub
        Else
            MsgBox "Incorrect Input, Please select the file again"
            Exit Sub
        End If
    End Sub
    

相关问题