【发布时间】:2021-10-15 14:56:25
【问题描述】:
我的代码在“SaveAs”行停止,出现类型不匹配错误,知道为什么吗?我真的需要 YYYY-MM-DD 格式的日期。我有有效的代码,但它会将单个数字的月份和日期显示为单个数字,而不是 04。
Sub save2()
'APAC
Application.ScreenUpdating = False
Dim wb As Workbook
Dim xStrDate As String
Set wb = Workbooks.Add
xStrDate = VBA.Format(Now(), "yyyy-mm-dd")
ThisWorkbook.Sheets("APAC_Coming_Due").Copy Before:=wb.Sheets(1)
ThisWorkbook.Sheets("APAC_Overdue").Copy Before:=wb.Sheets(1)
ThisWorkbook.Sheets("APACCover").Copy Before:=wb.Sheets(1)
wb.Sheets(1).Name = "APAC - IMPORTANT INFORMATION"
wb.Sheets(2).Name = "Overdue"
wb.Sheets(3).Name = "Due Date Approaching"
Application.DisplayAlerts = False
wb.Sheets("Sheet1").Delete
wb.SaveAs"\\xxxxx.xx.xxxxx.com\xxxxxx\xxxx\xxxxxxx\xxxxxx\xxxxxx\xxxxx\xxxx_
\xxxxx\xxxx\xxxx\APAC OverdueOutstanding & " - " & xStrDate.xlsx"
ActiveWorkbook.Close
End Sub
【问题讨论】:
-
续行下划线不能像您拥有的那样在字符串内,并且您还需要在
SaveAs中指定与您的文件扩展名匹配的文件类型规范。 -
你的
xStrDate变量也是“在你的字符串内部”,它不应该是。可能只是引号的问题。首先将整个部分放在一行上,然后在尝试将其分成 2 之前让它工作,如果你真的需要它在 2 上。 -
换行符只是为了堆栈溢出。在实际代码中只有一行。
-
以后最好不要这样做。如您在 Peh 的回答中所见,Stack Overflow 会自动添加滚动条。
标签: excel vba type-mismatch