我可以基于某个单元格值更改文件名。我正在尝试根据某个单元格中的值更改文件位置。
“ 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':对象'_Workbook'的方法'SaveAs'失败””
答案 0 :(得分:0)
错误似乎是在字符串和变量之间切换。字符串用双引号引起来,而变量则没有。在两者之间切换时,请使用“&”。
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
答案 1 :(得分:0)
上面的代码中您具有要另存为.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(2007年的Excel Binary Workbook,带有或不带有宏,.xlsb)
56 = xlExcel8(Excel 2007中的97-2003格式,.xls)