在 vba 中设置文件路径和文件名

Setting FilePath and FileName in vba

好的,所以我想我对如何执行此操作感到困惑,也许我做的事情明显错误?

这是我的代码:

Private Sub CommandButton1_Click()
    Dim wbI As Workbook, wbO As Workbook, wb1 As Workbook
    Dim wsI As Worksheet, wsO As Worksheet, ws1 As Worksheet

    filelocation1 = "C:\Users\Public\Desktop_" & Format(Date, "ddmmyyyy") & "Production.xls"
    Set wbI = ThisWorkbook
    Set wsI = wbI.Sheets("Production")
    Set wbO = Workbooks.Add
    With wbO
        Set wsO = wbO.Sheets("Sheet1")
        ActiveWorkbook.SaveAs Filename:=filelocation1 '******
        wsI.Range("A1:C100").Copy
        wsO.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
End With

但是在带星号的行我得到了 运行 时间错误(包含在图像中)。我认为这是因为我保存文件不正确......但我认为这是正确的?是因为我使用的是文件路径而不是文件名吗?我是否需要在路径 "Name".xls 的末尾添加?还是需要分开文件名和文件路径?

提前致谢:)

编辑:但是现在一切正常,文件被转储到 "C:\Users\Public" 位置,名称中添加了 DESKTOP (而不是 "C:\Users\Public\Desktop" 。我已经尝试了各种尝试路由的东西它到正确的位置,例如在末尾添加“_”以及其他无效的技巧。

我该如何解决这个问题?

已解决:

filelocation1 = "C:\Users\Public\Desktop" & "\" &  Format(Date, "ddmmyyyy") _ 
& "Production.xls"

您需要在文件路径中包含文件名,例如"C:\Users\Public\Desktop\Name.xls"

我认为是语法错误

我倾向于使用类似

的东西
dim filelocation as string
dim fileext as string
dim filestring as string

然后使用 "C:\Users\Public\Desktop\" 作为您的文件位置并将文件扩展名设置为您喜欢的任何内容,例如如果您想说在文本框中输入您拥有的文件名,那么 fileext = textbox.text 就是 filestring = filelocation & fileext 的情况。这种方法如果你玩的话可以让你灵活