【发布时间】:2016-06-30 20:44:51
【问题描述】:
任何人,
我正在尝试在 excel vba 中创建一个程序,其中宏将根据 excel 范围在工作簿中查找/循环查找工作表名称。此外,在查找工作表名称后,程序将根据给定文件名将工作表保存在另一个单元格区域中。
我的主要问题是如何根据下面提供的图片中给出的区域名称保存循环文件/工作表名称。
希望你能帮我解决我的问题。
这是我最近在宏上的工作,我可以保存文件,但它会根据我查找的工作表名称保存文件。谢谢。 sample picture here
Sub Save_Test()
Dim ws As Worksheet
Dim wb As Workbook
Dim c, b As Range
Dim rng, rng2 As Range
Dim mysheet As Worksheet
Dim LastRow, LastRow2 As Integer
Dim file_name As String
LastRow = Range("I" & rows.Count).End(xlUp).row
Set rng = Range("J5:J" & LastRow)
Set ws = Worksheets("Control")
For Each c In rng
Sheets(c.Value).Select
Cells.Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Copy
Application.DisplayAlerts = False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
ActiveSheet.Name = c.Value
Application.CutCopyMode = False
ActiveWindow.DisplayGridlines = False
TemplateLocation = ThisWorkbook.Path
file_name = c.Value
ActiveWorkbook.SaveAs Filename:=TemplateLocation & "\" & "Reports" & "\" & Format(Now() - 1, "mmyy") & " " & file_name & " Hustle Board thru " & Format(Now() - 1, "mm-dd-yy"), FileFormat:=51, CreateBackup:=False
Application.DisplayAlerts = False
ActiveWindow.Close
Next
Sheets("Control").Select
End Sub
【问题讨论】:
-
一个好的问题是最好包含一些代码,或者至少是对特定问题的清晰描述,而不仅仅是规范。选择您在处理时遇到问题的第一个特定部分,然后询问。
-
请查看How to Ask
-
对不起,我的代码上传晚了。你去吧。我已经将我最近工作的代码用于保存文件。我想要的只是让文件名基于特定的单元格范围,而不是基于工作表名称。
-
我强烈建议您阅读并实施how to avoid using
.Activate,它会为您省去头疼的问题并帮助代码运行得更快。