010203400 发表于 2013-7-27 11:25
如下備注,問題有點多,請幫忙確認可如何克服,感謝!
Sub SaverExcel()
"舊面"是指"桌面"吗?要存在不同机器的桌面,可以用:CreateObject("WScript.Shell").SpecialFolders("Desktop")
另外我估计你是想要工作表(Sheet)的名字,而不是工作簿的(Workbook)的名字吧,整个代码可如下:
- Sub SaveExcel()
- Dim DTadd As String, sDate As String, sName As String
- DTadd = CreateObject("WScript.Shell").SpecialFolders("Desktop") & Application.PathSeparator
- sDate = Format(Date, "mm.dd")
- sName = DTadd & sDate & " " & ActiveSheet.Name & " abcdefgh.xls"
- Application.DisplayAlerts = False
- ActiveWorkbook.SaveAs sName
- MsgBox "檔案已經保存在舊面,文件名為: " & sName
- End Sub
复制代码所以,你的问题二和三也回答了: ThisWorkbook.Name 是代表代码所在的工作簿的名字, 而工作簿中的当前活动工作表的名称即为: ActiveSheet.Name. 没有ThisWorkbookSheet.Name这个东西.
如果你想要的是工作簿名而不是工作表名,可以将以上代码中的这一句:
sName = DTadd & sDate & " " &
ActiveSheet.Name & " abcdefgh.xls"
替换成:
sName = DTadd & sDate & " " &
ThisWorkbook.Name & " abcdefgh.xls"
看看效果你就明白了.