【发布时间】:2015-04-13 15:24:17
【问题描述】:
我正在尝试将工作表的副本保存到基于单元格 B8 的特定文件夹中,并根据单元格范围 B8 命名 .xlsx 文件。
例如,用户首先创建一个名为“test1”的新文件夹,然后将此文件夹名称/文本输入到单元格“B8”中。他/她将在完成工作表上的工作后激活宏,并将副本保存到名为“test1”的文件夹中,并将 .xlsx 文件命名为“test1”。 (所以 .xlsx 文件将被命名为“testfolder1”,存储它的文件夹也称为“test1”)
我正在使用以下代码将工作表的副本保存到文件夹中。只是无法弄清楚如何将单元格 B8 包含到 SaveAs 行中。 VB 太新了,无法弄清楚。
Sub SaveForm()
exampleForm = Range("B8").Value
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ActiveSheet.Copy
With ActiveWorkbook.ActiveSheet
.Range("42:" & Rows.Count).EntireRow.Delete xlShiftDown
.Range(.Cells(1, "J"), .Cells(1, Columns.Count)).EntireColumn.Delete xlToRight
.Parent.SaveAs "C:\Users\JohnSmith\Desktop\ExtractedWorksheet\" & exampleForm & ".xlsx"
.Parent.Close False
End With
End Sub
感谢任何意见,希望我的最终目标是可以理解的。 -谢谢!
【问题讨论】:
-
看来你做对了。发生什么了?你有错误吗?你的文件被保存了吗?你确定你在那里硬编码的路径存在吗?我能看到的唯一应该更改的是将
FileFormat:=xlOpenXMLWorkbook添加到您的With部分,以确保。 -
我没有收到错误消息。该脚本运行良好。
-
那么您需要更具体地提出您的要求。
Just can't figure out how to include the cell B8 into the SaveAs line.似乎是你的问题,但你说这不是问题,而且看起来不像。 -
哎呀,误输入了。我想要它做的是将工作表保存到也在单元格 B8 中输入的文件夹中。因此它将工作表保存为 Range B8 并保存在名为 B8 的文件夹中
-
会有一个名称与单元格 B8 匹配的现有文件夹。我希望宏使用输入到 B8 中的名称(上面的代码完成)保存工作表,并将其放置到输入到 B8 中的文件夹中。所以 C:\Users\JohnSmith\Desktop\ExtractedWorksheet\'cell B8'\'cell B8.xlsx"