任何人,
我正在尝试在excel vba中创建一个程序,其中宏将在excel范围的工作簿基础上查找/循环表单 . 此外,在查找工作表名称后,程序将根据另一个单元格范围上的给定文件名保存工作表 .
我的主要问题是如何根据下面提供的图片中给出的teritory名称保存循环文件/工作表名称 .
希望你能解决我的问题 .
这是我最近关于宏的工作,我可以保存文件,但它根据我查找的工作表名称保存文件 . 谢谢 . 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
1 回答
你将不得不填写你需要做的其他事情,但是从你的图片和你的代码开始,这应该得到
teritory
列中的值顺便说一句,如果您还不知道,在下面声明如下所示的varibales并不是一个好习惯 .
在这种情况下,
rng
此时不是rng . 您需要在下面执行此操作以明确声明为Range
变量 .