问题描述
我对VBA还是比较陌生,但是我已经能够找到适合我正在从事的项目的大多数需求的代码和解决方案。但是,我无法找到以下问题的解决方案。
我在同一目录中有4个DBF文件,这些文件链接到一个program \ application,该程序将它们中的数据导入到程序中。我正在尝试将数据从Excel工作簿导出到这些DBF文件。
我发现以下代码适合我的情况。为了使其正常工作,我发现首先需要通过使用Access打开和关闭每个DBF文件来创建一个.accdb文件。然后,我用4组相似的代码创建了4个宏,以将数据导出到4个DBF(.accdb)文件中。我还将代码中的Microsoft.Jet.OLEDB.4.0更新为Microsoft.ACE.OLEDB.16.0,并启用了Microsoft ActiveX数据对象6.1库。
Sub ADOFromExcelToDBF()
Dim cn As ADODB.Connection,rs As ADODB.Recordset,r As Long
' connect to the Access database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
"Data Source=C:\FolderName\DataBaseName.dbf;"
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "TableName",cn,adOpenKeyset,adLockOptimistic,adCmdTable
' all records in a table
r = 3 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0
' repeat until first empty cell in column A
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("FieldName1") = Range("A" & r).Value
.Fields("FieldName2") = Range("B" & r).Value
.Fields("FieldNameN") = Range("C" & r).Value
' add more fields if necessary...
.Update ' stores the new record
End With
r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
我遇到的问题是,尽管所有宏都单独工作,但是如果我尝试一个接一个地运行每个宏,Excel就会崩溃。尝试运行第二个宏(没有错误消息-Excel关闭并且当我重新打开它时,它说它已经恢复了工作簿)时,一个宏(无论哪个宏)都将在Excel崩溃之前始终起作用。
我发现它们都可以正常运行而不会崩溃的唯一方法是在运行每个宏后关闭并重新打开Excel。
我想知道是否有人知道为什么会发生这种情况以及是否有解决方案?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)