取决于选择了哪些列来创建新表

时间:2019-06-07 11:56:04

标签: excel vba

我想从基于主tabla的o列创建一个新表 我设法创建了一个代码,但是列必须始终相同,我想创建一个模板代码,该代码将存储在我在主选项卡上选择的列上,从而在新工作表上创建一个新表,并且可能与一个表不同时间到另一个,以便我可以创建一个快速访问权限,选择我的专栏,然后单击按钮并在新工作表上完成新表格

Sub CopyColumns()

    Sheets(Array("Sheet1", "Sheet2")).Select
    Sheets("Sheet1").Activate
    Columns("A:A").Select
    ActiveWindow.SelectedSheets.FillAcrossSheets Range:=Selection, Type:=xlAll
    Columns("B:B").Select
    ActiveWindow.SelectedSheets.FillAcrossSheets Range:=Selection, Type:=xlAll
    Columns("C:C").Select
    ActiveWindow.SelectedSheets.FillAcrossSheets Range:=Selection, Type:=xlAll
    Columns("D:D").Select
    ActiveWindow.SelectedSheets.FillAcrossSheets Range:=Selection, Type:=xlAll
    Sheets("Sheet1").Columns("E:E").Copy Destination:=Sheets("Sheet2").Range("E1")

    Sheets("Sheet1").Select

End Sub

Sub CopyColumns()

    Sheets(Array("Sheet1", "Sheet2")).Select
    Sheets("Sheet1").Activate
    Columns("A:A").Select
    ActiveWindow.SelectedSheets.FillAcrossSheets Range:=Selection, Type:=xlAll
    Columns("B:B").Select
    ActiveWindow.SelectedSheets.FillAcrossSheets Range:=Selection, Type:=xlAll
    Columns("C:C").Select
    ActiveWindow.SelectedSheets.FillAcrossSheets Range:=Selection, Type:=xlAll
    Columns("D:D").Select
    ActiveWindow.SelectedSheets.FillAcrossSheets Range:=Selection, Type:=xlAll
    Sheets("Sheet1").Columns("E:E").Copy Destination:=Sheets("Sheet2").Range("E1")

    Sheets("Sheet1").Select

End Sub

选择列(每次都不相同),每次我运行具有不同选择的代码时都会创建一个新表

1 个答案:

答案 0 :(得分:3)

如果必须使用选择内容的简单示例...

Sub CopyColumns()

Dim mySel As Range
With ActiveWorkbook
    Set mySel = Selection.EntireColumn
    .Sheets.Add After:=Worksheets(Worksheets.Count)
    mySel.Copy Destination:=.Sheets(.Sheets.Count).Range("A1")
End With

End Sub

enter image description here