0

我正在编写一些代码,我在 TMX(一种 xml 形式)下导入一些文件。我尝试了各种选择

a) 使用 Open FileName 进行输入,但这会弄乱字符编码

b) 打开文件并使用 msoDialog 复制数据,但是如果文件太大(通常是这种情况),则会返回错误,这会使数据完全混乱。

c) 使用记事本打开文件,但与之前的选项一样,将整个文件复制到 Excel 中存在相同的限制。我不想使用调用写字板的 shell 函数。

我现在的问题是,我需要逐行复制文件以根据需要处理其内容(希望不会丢失字符编码

有人知道如何从写字板中打开的文件中复制每一行并将其粘贴到 Excel 中吗?

谢谢

4

1 回答 1

0

对于大文件,您可以使用此解决方案:

Public Sub ImportTMXtoExcel()

Call Application.FileDialog(msoFileDialogOpen).Filters.Clear
Call Application.FileDialog(msoFileDialogOpen).Filters.Add("TMX Files", "*.tmx")
Application.FileDialog(msoFileDialogOpen).Title = "Select a file to import..."
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
intChoice = Application.FileDialog(msoFileDialogOpen).Show
If intChoice <> 0 Then
    strFileToImport = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
Else
    Exit Sub
End If

intPointer = FreeFile()
Open strFileToImport For Input Access Read Lock Read As #intPointer

intCounter = 0
Do Until EOF(intPointer)
    Line Input #intPointer, strLine
    intCounter = intCounter + 1
    Worksheets(1).Cells(intCounter + 1, 1).Value2 = strLine
Loop

Close intPointer

End Sub

对于其他编码,您可以使用此解决方案中所述的 ADO 流: VB6/VBScript change file encoding to ansi

如果您有需要 ADO 流的大文件,那么您可能需要考虑首先按照此解决方案中的说明分解大文件: 如何将大文本文件拆分为具有相同行数的较小文件?

以下网站提供了一个在命令提示符下模拟 Windows 的 Unix 命令拆分的工具:https ://www.fourmilab.ch/splits/

于 2015-06-01T10:14:42.487 回答