使用 VBA 从 IQy 转换为 XLSX

Converting from IQy to XLSX with VBA

我有大约 40 个文件是 IQy 文件,我可以用 Excel 打开它们,我正在尝试浏览所有这些文件并将它们保存为 xlsx 文件。到目前为止,我在 VBA 中拥有的是这个

Sub ConvertFiles()
    Dim Filename, Pathname As String
    Dim wb As Workbook

    Pathname = "C:\Users\CHI\Downloads"
    Filename = Dir(Pathname & ".iqy")
    Do While Filename <> ""
        Set wb = Workbooks.Open(Pathname & Filename)
        wb.SaveAs Pathname & Filename & ".xlsx"
        wb.Close
        Filename = Dir()
    Loop
End Sub

据我了解,这循环遍历我的下载文件,其中存储了 iqy 文件,然后以 xlsx 格式保存。当我 运行 没有任何反应。

更新

Sub ConvertFiles()
    Dim Filename, Pathname As String
    Dim wb As Workbook

    Pathname = "C:\Users\CHI\Downloads\"
    Filename = Dir(Pathname & "*.iqy")
    Application.DisplayAlerts = False
    Do While Filename <> ""
        Set wb = Workbooks.Open(Pathname & Filename)
        wb.SaveAs Pathname & Filename & ".xlsx", FileFormat:=51
        wb.Close
        Filename = Dir()
    Loop
End Sub

这对我有用,我现在唯一的问题是在它更改每个文件后我得到导入数据的提示,我只需按一下就可以了。有没有办法使这部分自动化,以便我可以使用 table 选项导入数据。

您需要包含一个通配符才能找到您的 iqy 文件,您的路径名将需要一个额外的文件夹分隔符以允许打开和另存为工作:

Sub ConvertFiles()
    Dim Filename, Pathname As String
    Dim wb As Workbook

    Pathname = "C:\Users\CHI86786\Downloads\"
    Filename = Dir(Pathname & "*.iqy")
    Do While Filename <> ""
        Set wb = Workbooks.Open(Pathname & Filename)
        wb.SaveAs Pathname & Filename & ".xlsx", FileFormat:=xlOpenXMLWorkbook
        wb.Close
        Filename = Dir()
    Loop
End Sub

最后,为了确保正确保存,在使用SaveAs时设置FileFormat参数。