我是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
。
非常感谢任何帮助 谢谢 泰德
答案 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