Vba 如何存储表';通过unicode编码的dbf格式excel工作表的范围?
我正在使用Excel2010,需要通过unicode编码在dbf中存储一系列表。 我试着吼叫:Vba 如何存储表';通过unicode编码的dbf格式excel工作表的范围?,vba,excel,dbf,dbase,Vba,Excel,Dbf,Dbase,我正在使用Excel2010,需要通过unicode编码在dbf中存储一系列表。 我试着吼叫: Workbook.SaveAs FileName:="test.dbf", FileFormat:=xlDBF4, CreateBackup:=False 但是得到了错误 如何做到这一点?您可能需要研究如何使用Scripting.FileSystemObject(fso),因为使用unicode在文件编码方式上存在细微差异,而使用fso可以提供更多控制。例如,在我的一个项目中,我需要将文件保存为纯u
Workbook.SaveAs FileName:="test.dbf", FileFormat:=xlDBF4, CreateBackup:=False
但是得到了错误
如何做到这一点?您可能需要研究如何使用Scripting.FileSystemObject(fso),因为使用unicode在文件编码方式上存在细微差异,而使用fso可以提供更多控制。例如,在我的一个项目中,我需要将文件保存为纯utf-8而不是utf-8-bom。默认行为是将文件另存为utf-8-bom,这意味着在文件的开头有3个隐藏字符,称为字节顺序标记(bom)。在下面的代码中,在将文件保存为纯utf-8之前,通过复制到新流来删除这3个字符
Dim fso As Scripting.FileSystemObject, stream1 As Stream, stream2 As Stream
Sub saveFileAfterRemovingBOM(path As String)
stream1.Position = 3 'skip BOM (byte order mark)
Set stream2 = CreateObject("ADODB.Stream")
With stream2
.Type = adTypeBinary
.Mode = adModeReadWrite
.Open
stream1.CopyTo stream2
stream1.Flush
stream1.Close
.SaveToFile path, adSaveCreateNotExist 'creates the file if it doesn't exist
.Flush
.Close
End With
End Sub
Stream&Scripting.FileSystemObject需要在VBE中添加引用,如下所示:Microsoft脚本运行时和Microsoft ActiveX数据对象库(从2016年10月起为v6.1版)。要在VBE中添加这些,请使用工具-->引用
请注意
dbf
。如何在上面进行开发,以便将*.dbf
格式的范围导出为dbf格式?找不到Microsoft ActiveX数据对象库(从2016年10月起的v6.1版)
。有Microsoft ActiveX Data Objects 2.0库
到Microsoft ActiveX Data Objects 2.8库
。应该激活哪个库?我刚刚检查了使用这些库的项目,它们都出现在列表中。我在回答的末尾添加了一个屏幕截图。我使用的是Office 365和Windows 10。不知道你为什么没看到这些。