VBA如何用命令按钮另存文件并自动命名

我想请教大神怎样才能通过点一下sheet1里的命令按钮就能达到保存指定位置还可以自动更改文件名,求好心人详细解答。
这条编码只能保存却不能自动更改文件名~
Private Sub CommandButton1_Click()
If Dir("E:\DC", vbDirectory) = "" Then '查检E盘中有没有“DC”文件夹
MkDir "E:\DC" '没有就建一个“DC”文件夹
End If
Application.DisplayAlerts = False '取消提示
'ThisWorkbook.SaveAs "E:\DC\" & ThisWorkbook.Name 'WQ
ThisWorkbook.SaveAs "E:\DC\WQ.xls"
Application.DisplayAlerts = True '恢复提示
End Sub

VBA用命令按钮另存文件并自动命名的方法:
1、每次保存一个新的文件,可以在文件名上加个编号。
如:
Static Index as Integer
Index = Index+1
ThisWorkbook.SaveAs "E:\DC\WQ" & Index & ".xls"
或产生一个随机名:
Dim fso
Set fso = CreateObject("Scripting.Filesystemobject")
dim Name as string
Name = fso.GetTempName
ThisWorkbook.SaveAs "E:\DC\" & Name & ".xls"
2、程序开头声明一个:
Private Declare Function GetTickCount Lib "<a href="https://www.baidu.com/s?wd=kernel32.dll&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLuAmsmW--m161uAubPWw-0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1TYPWn3njbsnHnzrHmznHRLn6" target="_blank" class="baidu-highlight">kernel32.dll</a>" () As Long
'跑一个死循环,循环里面含一个
sleep(6000)
SendKeys ("^s")
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-05
这不就能保存WQ.xls吗?是不没次都保存一个新的文件,可以在文件名上加个编号嘛,

如:
Static Index as Integer
Index = Index+1
ThisWorkbook.SaveAs "E:\DC\WQ" & Index & ".xls"

或产生一个随机名:
Dim fso
Set fso = CreateObject("Scripting.Filesystemobject")
dim Name as string
Name = fso.GetTempName
ThisWorkbook.SaveAs "E:\DC\" & Name & ".xls"追问

非常感谢你的建议~这个问题解决了,我想再请问一下 假如:我想通过命令按钮来操作打印“A1:F15”这一区域~用什么编码来连接打印机,大神~能否指点下~?

追答

不清楚工作表有没有打印某个区域的的命令,如果用vb来处理,有两个对象用来操作打印了,
Printer 和Printers,前者指当前打印机对象,后者打印机对象集合,操作上更图片框差不多,有相同的一些输出方法。

本回答被提问者和网友采纳
第2个回答  2019-02-20
Private Sub CommandButton3_Click()
If Dir("F:\" & Format(Now, "YYYY/MM/DD"), vbDirectory) = "" Then '查检f盘中有没有“YYYY/MM/DD”文件夹
MkDir "F:\" & Format(Now, "YYYY/MM/DD") '没有就建一个“YYYY/MM/DD”文件夹
End If
Application.DisplayAlerts = False '取消提示
'在F盘Format(Now, "YYYY/MM/DD") 文件夹中创建Format(Now, "YYYY/MM/DD") .xis表格
ThisWorkbook.SaveAs "f:\" & Format(Now, "YYYY/MM/DD") & "\" & Format(Now, "YYYY/MM/DD") & " .xls"
Application.DisplayAlerts = True '恢复提示
End Sub
第3个回答  2013-09-29
一般更改文件名大多是按日期加时间来保存。。比如你2013年9月28日10点28分29秒保存一个,下一个保存时可能就30秒了。。这样用数字表示一般不会出现重名比如20130928102829。
第4个回答  2013-09-29
这个我就真的不知道了
相似回答