在vba中设置FilePath和FileName

时间:2016-01-11 15:43:29

标签: excel vba filenames filepath

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

这是我的代码:

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"。我尝试了各种尝试将其路由到正确位置的东西,例如添加" _& #34;最后以及其他没有奏效的技巧。

我该如何解决这个问题?

求助:

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

我相信语法错误

我倾向于使用像

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

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