Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在vba中设置文件路径和文件名_Excel_Vba_Filenames_Filepath - Fatal编程技术网

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

Excel 在vba中设置文件路径和文件名,excel,vba,filenames,filepath,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_" & Fo

好吧,所以我想我对如何做感到困惑,也许我做了一些明显错误的事情

这是我的密码:

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

提前感谢:)

编辑:现在一切正常,但是,文件被转储到“C:\Users\Public”位置,名称中添加了桌面(而不是“C:\Users\Public\DESKTOP”)。我尝试了各种方法试图将其路由到正确的位置,比如在末尾添加一个“\ux”,以及其他不起作用的技巧

我该如何解决这个问题

已解决:

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
。这种方法可以让你灵活地使用它

“这是因为我使用文件路径而不是文件名吗?我需要在路径‘名称’.xLS结尾处添加OT吗?”这是正确的。你必须包括文件名。@ TiGeavaTar我能在这中间使用Tayle()函数吗?我必须做一些类似“PATS/X/X//”和“天”()。“?如果将其转换为string@Aranzi-如果有人想将他们的回答限制在评论形式的“开车经过”回答上,那么当有人以合法的“回答”形式提供类似的行为时,他们没有追索权。同意;请不要认为我的评论是恶意的。我只是说(为了Jordan Biddlecombe和您一样的利益)如果一个新用户自己没有做出同样的努力,那么就不应该贬低他们的努力。平和:)我想补充一点,排除文件扩展名并允许
FileFormat:=56
从中确定这一点是更好的做法。(56是xlExcel8)。