【问题标题】:VBA Excel SaveAs xlDBF4VBA Excel 另存为 xlDBF4
【发布时间】:2021-01-23 00:11:10
【问题描述】:

StackOverflow 社区,

我最近在下面创建此宏时遇到问题,关于如何从 Excel 中保存为 xlDBF4 和活动工作簿。我不知道为什么,但不起作用会出现运行时错误,我已经尝试使用 FileFormat:= 11 和 FileFormat:= xlDBF4

Sub SaveAsDBF()
Application.ScreenUpdating = False
Application.Calculation = xlManual
Application.DisplayAlerts = False
Application.EnableEvents = False
Dim strPath As String
            strPath = "C:\"
            strPath = strPath & ActiveSheet.Name & ".dbf"
            ActiveWorkbook.SaveAs Filename:=strPath, FileFormat:=xlDBF4, _
                CreateBackup:=False
            'ActiveWorkbook.SaveAs Filename:=strPath, FileFormat:=11
End Sub

【问题讨论】:

  • 出现运行时错误不是问题描述。您看到的确切错误消息是什么?
  • 运行时错误“1004”:对象“_Workbook”的方法“SaveAs”失败
  • DBF(2,3 和 4)的所有 xlFileFormat(s) 似乎都会产生 1004 错误。我随后的网络搜索似乎表明保存到 DBF 的功能在 Excel 2007 中已被弃用。有些人使用 Access 作为中介来导入 Excel 数据,然后以 DBF 格式保存数据。此外,据说也可以购买 Excel 插件来执行此操作,但我没有使用它们的经验。任何人都可以确认 DBF 保存当时已被弃用吗?

标签: excel vba file-format


【解决方案1】:

如果它必须是 DBF 文件,那么最新 Excel 的唯一解决方案是使用 ADODB 并执行查询,确保您的 office / Excel 是 32 位的,因为 DBF 驱动程序只能在 32 位中运行。 参考Microsoft ActiveX Data Objects 6.1 Library代码示例执行DBF查询:

Dim conn As ADODB.Connection
Dim comm As ADODB.Command
Set conn = New ADODB.Connection
Set comm = New ADODB.Command

conn.ConnectionString = "Provider=Microsoft.Jet.OleDB.4.0;Extended Properties=dBASE IV;Data Source=C:\Temp"
comm.CommandText = "CREATE TABLE 201008 ([FirstName] String(50), [LastName] String(50))"
With conn
    .Open
    With comm
        .ActiveConnection = conn
        .Execute
    End With
End With

conn.Close
Set conn = Nothing
Set comm = Nothing

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多