2017-06-12 100 views
1

我是VBA的新手。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

這是隱藏和創造今天的日期一新的工作表

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 
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 
+0

我通過代碼加強和它的工作原理直到這點'Ws.Range(「Pipeline [#All]」)。複製newWs.Range(「a1」) Ws.Visible = xlSheetHidden'它似乎是粘貼整個工作表而不是選定的部分代碼'ActiveSheet.ListObjects(「Pipeline」)。Range。 AutoFilter Field:= 1,Criteria1:= _ 「<>」 範圍(「Pipeline [[#Headers],[FC]]」)選擇 範圍(Selection,Selection.End(xlDown))選擇 範圍(Selection,Selection.End(xlToRight))。選擇 Selection.Copy' –

+0

@TedDennis:我修改了代碼。 –

相關問題