【发布时间】:2013-03-06 23:59:52
【问题描述】:
我有一个电子表格,单击按钮后,它将通过将所有内容复制/粘贴到新工作簿来复制自身,并使用取决于某些变量值的名称保存文件(取自电子表格上的单元格)。 我目前的目标是让它根据客户名称的名称(保存在变量中的单元格值)将工作表保存在不同的文件夹中,虽然这在第一次运行时有效,但之后出现错误。
代码检查目录是否存在,如果不存在则创建它。 这可行,但是在创建之后,再次运行它会引发错误:
运行时错误 75 - 路径/文件访问错误。
我的代码:
Sub Pastefile()
Dim client As String
Dim site As String
Dim screeningdate As Date
screeningdate = Range("b7").Value
Dim screeningdate_text As String
screeningdate_text = Format$(screeningdate, "yyyy\-mm\-dd")
client = Range("B3").Value
site = Range("B23").Value
Dim SrceFile
Dim DestFile
If Dir("C:\2013 Recieved Schedules" & "\" & client) = Empty Then
MkDir "C:\2013 Recieved Schedules" & "\" & client
End If
SrceFile = "C:\2013 Recieved Schedules\schedule template.xlsx"
DestFile = "C:\2013 Recieved Schedules\" & client & "\" & client & " " & site & " " & screeningdate_text & ".xlsx"
FileCopy SrceFile, DestFile
Range("A1:I37").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\2013 Recieved Schedules\" & client & "\" & client & " " & site & " " & screeningdate_text & ".xlsx", UpdateLinks:= _
0
Range("A1:I37").PasteSpecial Paste:=xlPasteValues
Range("C6").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
请原谅我缺乏这方面的知识,我还在学习。
我有一种非常强烈的感觉,它与目录检查逻辑有关,因为当抛出错误时,MkDir 行被突出显示。
【问题讨论】:
-
尝试检查零长度字符串(即“”),而不是空字符串。
-
如果没有找到,Dir 返回一个零长度的字符串。所以不要使用 Empty 使用 "" 代替
-
大家好,感谢您的建议,我已将其更改为“”,我从来不知道它会检查零长度字符串。虽然我将把它用于未来的最佳实践,但它并没有解决问题。还有什么建议吗?