我有一个VBA代码,用于打开.csv文件,更改其名称和扩展名,然后关闭它以保存更改(作为摘要)。代码工作正常,但是当我尝试打开新文件时,我收到一条消息,指出无法打开文件,因为格式或文件扩展名无效。我知道问题是由代码生成的,因为如果我手动完成所有操作,我就不会收到任何错误。这是代码:
Sub test2()
Dim nombre As String
Dim base As Workbook
Dim filtros() As Variant
Dim archivo As Workbook
Set archivo = ActiveWorkbook
Application.ScreenUpdating = False
nombre = InputBox("Ingrese el nombre de la base con los nuevos clientes")
Workbooks.Open ("C:\Users\npavon\Desktop\Bases de Datos Asistencia\" & nombre & ".csv")
Set base = Workbooks(nombre & ".csv")
base.Sheets(1).Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:= _
True
base.SaveAs ("C:\Users\npavon\Desktop\Bases de Datos Asistencia\" & Left(base.Name, InStr(base.Name, ".") - 1) & " ordenado.xlsb")
base.SendMail Recipients:="xx@xx.cl", Subject:="Base de Datos " & Date, returnreceipt:=False
base.Close savechanges:=True
Application.ScreenUpdating = True
End Sub
有什么建议吗?
答案 0 :(得分:2)
忘记扩展名并使用fileformat参数。
base.SaveAs filename:="C:\Users\npavon\Desktop\Bases de Datos Asistencia\" & Left(base.Name, InStr(base.Name, ".") - 1) & " ordenado", fileformat:=xlExcel12
如果不指定文件格式,Excel会尝试以此格式保存文件,选项,保存,保存文件中的默认值。添加不同的扩展名无助于改变这一点。