Определите местоположение файла на основе значения в определенной ячейке - PullRequest
0 голосов
/ 21 ноября 2018

Я могу изменить имя файла на основе определенного значения ячейки.Я пытаюсь изменить местоположение файла на основе значения в определенной ячейке.

В «B6» есть раскрывающийся список и папка для каждой доступной опции.

Вот мой текущийкод:

Sub SFVTEST()

Dim filepath

filepath = """T:\Restricted - Department\GLA_Shortcuts\Reagent and Column _ Validation\" & Range("B6") & "\" & Range("T26") & ".csv"""

ActiveWorkbook.SaveAs Filename:=filepath,_ FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End Sub

Получение

«Ошибка времени выполнения« 1004 »: сбой метода« Сохранить как »объекта« Работа »

Строка кода с ошибкой
enter image description here

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

В приведенном выше коде у вас есть имя файла, которое нужно сохранить как .csv, но вы хотите, чтобы это была книга с поддержкой макросов ...

Sub SaveForValidation()

    Dim filepath As String
    filepath = "T:\Restricted - Department\GLA_Shortcuts\Reagent and Column Validation\" & Range("B6") & "\" & Range("T26") & ".xlsm"

    ActiveWorkbook.SaveAs Filename:=filepath, FileFormat:=52, CreateBackup:=False

End Sub

Я лично использую формат файла # вместо слов.52 = .xlsm

Для других типов см. Ниже 51 = xlOpenXMLWorkbook (без макросов в 2007 г., .xlsx)

52 = xlOpenXMLWorkbookMacroEnabled (с или без макросов в 2007 г., .xlsm)

50 = xlExcel12 (двоичная рабочая книга Excel в 2007 году с макросами или без них, .xlsb)

56 = xlExcel8 (формат 97-2003 в Excel 2007, .xls)

0 голосов
/ 21 ноября 2018

Похоже, ошибка в переключении между строками и переменными.Строки заключены в двойные кавычки, переменные - нет.А при переключении между ними используйте '&'.

Sub SaveForValidation()
'
' SaveforValidation Macro
'

' File Name Formula Found in T26 in white text.
    ActiveWorkbook.SaveAs Filename:= _
        "T:\Restricted - Department\GLA_Shortcuts\Reagent and Column 
         Validation\" & Range("B6") & "\" & Range("T26") & ".csv" _
         , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End Sub

Возможно, имеет смысл встроить имя файла в переменную, чтобы упростить тестирование, например:

Sub SaveForValidation()
Dim filepath
filepath = "T:\Restricted - Department\GLA_Shortcuts\Reagent and Column Validation\" & Range("B6") & "\" & Range("T26") & ".csv"

ActiveWorkbook.SaveAs Filename:=filepath, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...