在vba中设置FilePath和FileName

问题描述 投票:2回答:2

好的,所以我觉得我对如何做到这一点感到困惑,也许我做的事情显然是错的?

这是我的代码:

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的末尾添加?或者我需要分隔文件名和文件路径?

提前致谢 :)

enter image description here

编辑:现在事情正在工作,文件被转储到“C:\ Users \ Public”位置,DESKTOP添加到名称(而不是“C:\ Users \ Public \ Desktop”。我尝试过各种各样的东西试图将它路由到正确的位置,比如在末尾添加“_”以及其他没有效果的技巧。

我该如何解决?

解决了 :

filelocation1 = "C:\Users\Public\Desktop" & "\" &  Format(Date, "ddmmyyyy") _ 
& "Production.xls"
excel vba filenames filepath
2个回答
3
投票

我相信语法错误

我倾向于使用类似的东西

dim filelocation as string
dim fileext as string
dim filestring as string

然后使用“C:\ Users \ Public \ Desktop \”作为文件位置,并将文件文本设置为您喜欢的任何内容,例如:如果你想说你在文本框中键入你自己的文件名然后fileext = textbox.text然后它是filestring = filelocation & fileext的情况。如果你玩它,这种方法可以让你灵活


3
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.