使用 VBA 将行从写字板复制到 Excel

Copying lines from Wordpad into Excel using VBA

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

a) 使用 Open FileName For 输入,但这会打乱字符编码

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

c) 使用记事本打开文件,但在将整个文件复制到 Excel 方面存在与前一个选项相同的限制。 我没有尝试使用 shell 函数调用写字板。

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

有人知道如何从用写字板打开的文件中复制每一行并将其post处理(相关元素的选择)粘贴到Excel吗?

谢谢

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

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 的 Stream,如此解决方案中所述: VB6/VBScript change file encoding to ansi

如果您有需要 ADO 流的大文件,那么您可能需要考虑首先按照此解决方案中的说明分解大文件: How to split a large text file into smaller files with equal number of lines?

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