【发布时间】:2017-11-20 23:25:31
【问题描述】:
我有以下 VBA 代码将 workbook1 工作表保存到保存 workbook1 文件的文件夹中。示例:workbook1 有 31 张工作表。该代码将每个工作表保存到与工作表同名的新工作簿中。 (Sheet1、Sheet2 等)。
Sub SaveShtsAsBook()
Dim Sheet As Worksheet, SheetName$, MyFilePath$, N&
MyFilePath$ = ActiveWorkbook.Path & "\" & _
Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4)
With Application
.ScreenUpdating = False
.DisplayAlerts = False
' End With
On Error Resume Next '<< a folder exists
MkDir MyFilePath '<< create a folder
For N = 1 To Sheets.Count
Sheets(N).Activate
SheetName = ActiveSheet.Name
Cells.Copy
Workbooks.Add (xlWBATWorksheet)
With ActiveWorkbook
With .ActiveSheet
.Paste
.Name = SheetName
[A1].Select
End With
'save book in this folder
.SaveAs Filename:=MyFilePath _
& "\" & SheetName & ".xls"
.Close SaveChanges:=True
End With
.CutCopyMode = False
Next
End With
Sheet1.Activate
End Sub
我需要修改代码以保存带有 ID 和日期的文件。 ID 在单元格 A1 中。 “Doe, John (JDOE) 的 XXX Clinic Pro 费用报告”。在此示例中,我需要将新工作簿另存为 JDOE_2017-10-20。
有没有办法给出 ID 并在其后面加上日期?
【问题讨论】:
-
1.如果您将工作表复制到任何目的地,您最终会得到一个新的(活动的)工作簿,该工作表的副本作为唯一的工作表。 2.使用VBA,工作表函数甚至正则表达式从A1中的字符串中提取JDOE并将当前日期附加到它应该是一件简单的事情。您在提取子字符串的哪一部分遇到问题?
-
顺便说一句,您的默认以这种格式保存文件: 真的设置为.XLS吗?
-
1.这是正确的
-
2.是的,它保存为 .xls。我在提取 JDOE 名称并将日期添加到新工作簿保存名称时遇到问题。将其另存为 Sheet1。 sheet2等