VBA创建,重命名并粘贴到新工作表

时间:2017-06-12 13:01:20

标签: vba excel-vba excel

我是VBA的新手。

我希望创建一些代码,在一张工作表上过滤一张表格,然后粘贴到一张新工作表中,而新工作表已在今天的日期重命名,然后隐藏现有工作表再次。这需要每周一次,可能每天一次。

到目前为止我已经

Sub test2()
'
' test2 Macro
'    
'
    ActiveSheet.ListObjects("Pipeline").Range.AutoFilter Field:=1, Criteria1:= _
        "<>"
    Range("Pipeline[[#Headers],[FC]]").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy


    Dim SheetName As String

    SheetName = Format(Date, "dd-mm-yyyy") 'Change the format as per your requirement
    Sheets.Add , Worksheets(Worksheets.Count)
    ActiveSheet.Name = SheetName
End Sub

这是过滤表格中的范围并复制,也是创建新工作表。但是,如何进入新工作表然后再次隐藏工作表。理想情况下,我认为代码需要取消隐藏工作表开头。工作表名称为FC_Pipeline

非常感谢任何帮助 谢谢 泰德

2 个答案:

答案 0 :(得分:2)

这是为了隐藏和创建一个包含今天日期

的新工作表
Sub Makro()
    Dim currentSheet As String
    currentSheet = ActiveSheet.Name

    Dim SheetName As String
    SheetName = Format(Date, "dd-mm-yyyy")

    Sheets.Add After:=ActiveSheet
    ActiveSheet.Name = SheetName

    Sheets(currentSheet).Visible = False
End Sub

答案 1 :(得分:0)

我认为代码就像这样

Sub test2()

    Dim Ws As Worksheet, newWs As Worksheet
    Dim SheetName As String

    Set Ws = ActiveSheet
    ActiveSheet.ListObjects("Pipeline").Range.AutoFilter Field:=1, Criteria1:="<>"
    SheetName = Format(Date, "dd-mm-yyyy") 'Change the format as per your requirement

    Sheets.Add , Worksheets(Worksheets.Count)
    ActiveSheet.Name = SheetName
    Set newWs = ActiveSheet
    Ws.Range("Pipeline[#All]").SpecialCells(xlCellTypeVisible).Copy newWs.Range("a1")
    Ws.Visible = xlSheetHidden
End Sub