【问题标题】:VBA to create, rename and paste into a new sheetVBA 创建、重命名和粘贴到新工作表中
【发布时间】:2017-09-01 17:34:34
【问题描述】:

我是 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

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

【问题讨论】:

    标签: vba excel


    【解决方案1】:

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

    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
    

    【讨论】:

      【解决方案2】:

      我认为代码应该是这样的

      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
      

      【讨论】:

      • 我逐步浏览了代码,它一直工作到这一点Ws.Range("Pipeline[#All]").Copy newWs.Range("a1") Ws.Visible = xlSheetHidden它似乎是粘贴整个工作表,而不是按照此代码ActiveSheet.ListObjects("Pipeline").Range.AutoFilter Field:=1, Criteria1:= _ "&lt;&gt;" Range("Pipeline[[#Headers],[FC]]").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select Selection.Copy粘贴选定的部分@
      猜你喜欢
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2023-01-24
      • 1970-01-01
      相关资源
      最近更新 更多