1
我正在使用Excel 2010,並且需要通過unicode編碼在dbf中存儲一系列表。 我試圖波紋管:如何通過unicode編碼以dbf格式存儲表格的excel工作表範圍?
Workbook.SaveAs FileName:="test.dbf", FileFormat:=xlDBF4, CreateBackup:=False
,但得到的錯誤。
我該怎麼做?
我正在使用Excel 2010,並且需要通過unicode編碼在dbf中存儲一系列表。 我試圖波紋管:如何通過unicode編碼以dbf格式存儲表格的excel工作表範圍?
Workbook.SaveAs FileName:="test.dbf", FileFormat:=xlDBF4, CreateBackup:=False
,但得到的錯誤。
我該怎麼做?
您可能想使用Scripting.FileSystemObject(fso),因爲使用unicode時,文件編碼方式以及使用fso可以提供更多控制方面存在細微差異。例如,在我的一個項目中,我需要將文件保存爲普通的utf-8而不是utf-8-bom。默認行爲是將文件保存爲utf-8-bom,這意味着在文件開始時會有3個隱藏字符,稱爲字節順序標記(BOM)。在下面的代碼,這3個字符被複制移至新的流的文件保存爲純UTF-8
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
的流& Scripting.FileSystemObject的要求在VBE加入參考如下之前:Microsoft腳本運行時&微軟的ActiveX數據對象庫(V16.1截至10/16)。要在VBE使用工具添加這些 - >引用...
請注意,'dbf'。如何開發上面的'''.dbf'作爲dbf格式的出口範圍? – mgae2m
'Microsoft ActiveX Data Objects Library(v6.1 of 10/16)'找不到。 「Microsoft ActiveX Data Objects 2.0 Library」爲「Microsoft ActiveX Data Objects 2.8 Library」。女巫應該被激活? – mgae2m
我剛剛檢查了使用這些庫的項目,並且都出現在列表中。我在我的回答結尾添加了截圖。我正在使用Office 365,Windows 10.不知道爲什麼你沒有看到這些。 –