Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.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
更改文件扩展名VBA时出错_Vba_Excel_Csv_Xlsb - Fatal编程技术网

更改文件扩展名VBA时出错

更改文件扩展名VBA时出错,vba,excel,csv,xlsb,Vba,Excel,Csv,Xlsb,我有一个VBA代码,可以打开一个.csv文件,更改其名称和扩展名,然后将其关闭并保存更改(作为摘要)。代码工作正常,但当我尝试打开新文件时,会收到一条消息,说明文件无法打开,因为格式或文件扩展名无效。我知道问题是由代码产生的,因为如果我手动执行所有操作,就不会出现任何错误。代码如下: Sub test2() Dim nombre As String Dim base As Workbook Dim filtros() As Variant Dim archivo

我有一个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

有什么建议吗?

忘记扩展名,使用fileformat参数

base.SaveAs filename:="C:\Users\npavon\Desktop\Bases de Datos Asistencia\" & Left(base.Name, InStr(base.Name, ".") - 1) & " ordenado", fileformat:=xlExcel12
在不指定文件格式的情况下,Excel会尝试从文件、选项、保存、以此格式保存文件保存为默认格式。添加不同的扩展不会改变这一点

更多信息请访问和 .

您是否测试了“C:\Users\npavon\Desktop\Bases de Datos Asistencia\”和Left(base.Name,InStr(base.Name,”)-1)和“ordenado.xlsb”的值。如果在此之前停止,并在即时窗口中选择“C:\Users\npavon\Desktop\Bases de Datos Asistencia\”&左(base.Name,InStr(base.Name,“.”-1)和“ordenado.xlsb”