VBA创建、重命名并粘贴到新图纸中

VBA创建、重命名并粘贴到新图纸中,vba,excel,Vba,Excel,我是VBA新手 我正在寻找创建一些代码,将过滤一个表的副本,然后粘贴到一个新的工作表,而新的工作表已被重命名为今天的日期,然后再次隐藏现有的工作表。这是需要每周和可能每天 到目前为止我有 Sub test2() ' ' test2 Macro ' ' ActiveSheet.ListObjects("Pipeline").Range.AutoFilter Field:=1, Criteria1:= _ "<>" Range("Pipeline[

我是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
子测试2()
'
'测试2宏
'    
'
ActiveSheet.ListObjects(“管道”).Range.AutoFilter字段:=1,Criteria1:=_
""
范围(“管道[#标题],[FC]]”。选择
范围(选择,选择。结束(xlDown))。选择
范围(选择,选择。结束(xlToRight))。选择
选择,复制
将SheetName设置为字符串
SheetName=格式(日期,“dd-mm-yyyy”)'根据您的要求更改格式
工作表。添加,工作表(工作表。计数)
ActiveSheet.Name=SheetName
端接头
这将筛选表中的范围并进行复制,还将创建新工作表。但是,我如何进入新的工作表,然后再次隐藏工作表。理想情况下,我认为代码需要先取消隐藏工作表。工作表名称为
FC\u管道

非常感谢您的帮助。
谢谢
Ted

这是隐藏并创建包含今天日期的新工作表

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

我想代码应该是这样的

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
子测试2()
将Ws设置为工作表,将newWs设置为工作表
将SheetName设置为字符串
设置Ws=ActiveSheet
ActiveSheet.ListObjects(“管道”).Range.AutoFilter字段:=1,Criteria1:=
SheetName=格式(日期,“dd-mm-yyyy”)'根据您的要求更改格式
工作表。添加,工作表(工作表。计数)
ActiveSheet.Name=SheetName
设置newWs=ActiveSheet
Ws.Range(“管道[#所有]”).SpecialCells(xlCellTypeVisible)。复制新的Ws.Range(“a1”)
Ws.Visible=xlSheetHidden
端接头

我一步一步地浏览了代码,它一直工作到这一点
Ws.Range(“Pipeline[#All]”)。复制newWs.Range(“a1”)Ws.Visible=xlSheetHidden
它似乎在粘贴整个工作表,而不是按照此代码粘贴选定的部分
ActiveSheet.ListObjects(“Pipeline”)。Range.AutoFilter字段:=1,Criteria1:=\u0范围(“管道[#标题],[FC]]”。选择范围(选择,选择。结束(xlDown))。选择范围(选择,选择。结束(xlToRight))。选择选择。复制