我已被分配使用excel文件中的一些数据来更新现有的大型XML文件。我想使用VBA代码来更快地进行更新,因为excel行和文本行的数量很大,并且将来可能会更改。
我已经搜索并找到了各种有关如何读写txt / xml文件的代码(与哪一个无关)。但是,在不删除所有已存在的txt / xml文件的情况下,我无法找到任何方法。 仅出于示例目的,我在下面写了一个要处理的文本(由于它的数百行长,所以我不使用原始文本)。
How to improve on life!
Pro tips:
Enjoy!
我想要的是能够在该空间中插入多行文本,方法是使用文本行作为参考(在“专业提示:”之后或在“享受!”之前)或检测到空行并以此为起点。我不知道文本行和excel行的数量,但是我确实有一些参考点,因为文件具有预先存在的结构,因此我可以将某些行中的文本用作参考点。
是否可以在excel VBA中做到这一点?
答案 0 :(得分:1)
文本文件是顺序的。这意味着在一行之后紧跟着下一行。没有插入空间。
要在现有文本文件中插入一行,您需要“假脱机”该文件,并在您要“插入”该行的地方,将其写入,然后假脱机其余部分。以下是一个示例:
Sub spool(myFile As String, myPath As String)
Dim textline
Open myPath & myFile For Input As #1
Open myPath & "tmp.txt" For Output As #2
While Not EOF(1)
Line Input #1, textline
' do your check here and insert the line
If (myCondition = True) Then
Print #2, "Hello World!"
End If
Print #2, textline
Wend
Close #1
Close #2
Kill myPath & myFile
Name myPath & "tmp.txt" As myPath & myFile
End Sub