2016-01-11 1 views
1

Итак, я думаю, что я запутался в том, как это сделать, и, может быть, я делаю что-то явно неправильно?Настройка FilePath и FileName в 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 

Однако на линии со звездочкой я получаю ошибку во время выполнения программы (входит в изображение). Я думаю, это потому, что я неправильно сохраняю файл ... но я думал, что это правильно? Это потому, что я использую путь к файлу вместо имени файла? Нужно ли мне добавить в конце пути «Имя» .xls? Или мне нужно разделить имя файла и путь к файлу?

Заранее спасибо :)

enter image description here

EDIT: Но сейчас все работает, файл сбрасывались в "C: \ Users \ Public" место с настольными добавляется к имени (вместо «C: \ Users \ Public \ Desktop». Я пробовал всевозможные вещи, пытаясь перенаправить их в нужное место, например, добавить «_» в конце, а также другие трюки, которые не сработали.

Как это исправить?

SOLVE D: filelocation1 = "C: \ Users \ Public \ Desktop" & "\" & Format (Date, "DDMMYYYY") & "Production.xls"

+1

«Это потому, что я использую путь к файлу вместо имени файла? Мне нужно добавить ot в конец пути« Name'.xls? »? Это верно. Вы должны указать имя файла. – tigeravatar

+0

@tigeravatar Могу ли я использовать функцию СЕГОДНЯ() в середине этого? Мне нужно было бы сделать что-то вроде «path/x/x /» & TODAY() & «.xls»? –

+1

да, если вы преобразуете его в строку – Arazio

ответ

2

Синтаксическая ошибка я считаю,

Я предпочитаю использовать что-то вроде

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

Затем с помощью "C: \ Users \ Public \ Desktop \" в качестве местоположения файла и установить fileext, как бы то ни было вы например, если вы хотите указать тип собственного имени файла в текстовое поле, то fileext = textbox.text, то это случай filestring = filelocation & fileext. Этот способ позволяет вам гибко, если вы играете с ним

2

Вам необходимо включить имя файла в пути к файлу, например, "C:\Users\Public\Desktop\Name.xls"

+1

Я бы добавил, что лучше исключить расширение файла и разрешить 'FileFormat: = 56' определить, что из [XlFileFormat Enumeration] (https://msdn.microsoft.com/en-us/library /office/ff198017.aspx). (** 56 ** - xlExcel8). – Jeeped