【发布时间】:2010-10-15 10:01:10
【问题描述】:
我有一个包含三个工作表的工作簿:产品、客户、日记。 我需要的是分配给上述每个表格中的按钮的宏。 如果用户单击该按钮,则应将活动工作表另存为具有以下命名约定的新工作簿:
SheetName_ContentofCellB3_DD.MM.YYYY
在哪里
- SheetName 应该是 当前活动工作表
- CellB3 的内容 活动单元格 B3 的内容 每次工作表
- DD.MM.YYYY 当前日期
我编写的以下宏实现了上述内容:
Sub MyMacro()
Dim WS As Worksheet
Dim MyDay As String
Dim MyMonth As String
Dim MyYear As String
Dim MyPath As String
Dim MyFileName As String
Dim MyCellContent As Range
MyDay = Day(Date)
MyMonth = Month(Date)
MyYear = Year(Date)
MyPath = "C:\MyDatabase"
Set WS = ActiveSheet
Set MyCellContent = WS.Range("B3")
MyFileName = "MyData_" & MyCellContent & "_" & MyDay & "." & MyMonth & "." & MyYear & ".xls"
WS.Copy
Application.WindowState = xlMinimized
ChDir MyPath
If CInt(Application.Version) <= 11 Then
ActiveWorkbook.SaveAs Filename:= _
MyFileName, _
ReadOnlyRecommended:=True, _
CreateBackup:=False
Else
ActiveWorkbook.SaveAs Filename:= _
MyFileName, FileFormat:=xlExcel8, _
ReadOnlyRecommended:=True, _
CreateBackup:=False
End If
ActiveWorkbook.Close
结束子
但是有一些问题我希望得到您的帮助:
- 我应该如何改变上面的宏所以 用户可以决定路径 新工作簿的位置 保存了吗?
- 我应该如何更改上述宏,以使新工作簿不包含任何作为初始工作簿工作表一部分的宏?
- 你在我的宏中看到了什么吗 这可以做得更好 方式?
提前感谢大家的宝贵时间。
附:对于我的使用情况,必须始终具有从 excel 2007 到 excel 2002 的向后兼容性
【问题讨论】: