【发布时间】:2021-05-07 03:05:33
【问题描述】:
我想知道是否有人可以帮助我。 我有一堆包含几千行的文本文件,我只想提取每个文件的一个元素。
文件内容的sn-p是这样的:
<LastMassUpdateChange xsi:nil="true" />
<Notes />
<PropertyType1>House</PropertyType1>
<PropertyType2>SemiDetached</PropertyType2>
<PositionOfFlat xsi:nil="true" />
<FlatWhichFloor>0</FlatWhichFloor>
<FlatFloorsAbove>0</FlatFloorsAbove>
我只想提取<PropertyType2> 和</PropertyType2> 之间的文本所以在这种情况下SemiDetached 并将这个结果放在文件url 列旁边。
文件的url都在excel的一列中,所以我需要一个循环vba来检查该列中的每个文本文件,并将结果放在下一列中。
我有以下代码来提取某一行中的数据,但我没有意识到这些文件并非都以相同数量的行格式化,所以它没有成功。
非常感谢任何帮助,谢谢。
Sub extractpropertytype()
Dim d As Integer
' For d = 1 To Sheet2.Range("G" & Rows.Count).End(xlUp).Row
For d = 2 To Range("AE1").Value + 1
'Workbooks("Book1").Activate
Open Range("AA" & d).Value For Input Access Read As #1
For i = 1 To 80
Line Input #1, X
'Range("a1").Offset(i - 1, 0).Value = x
Next i
Line Input #1, X
Range("AB" & d) = X
Close #1
Next d
End Sub
【问题讨论】:
-
If X Like "<PropertyType2>*</PropertyType2>" Then -
谢谢蒂姆,我该去哪里?与我当前的代码混合?谢谢
-
If X Like "<PropertyType2>*</PropertyType2>" Then Range("AB" & d) = X将是一个好的开始。 -
嗨蒂姆我已经尝试了以下,但我似乎无法弄清楚如何告诉代码搜索文件中的所有行?
Sub extracthousetype2() Dim d As Integer For d = 2 To Range("AE1").Value + 1 Open Range("AA" & d).Value For Input Access Read As #1 For i = 1 To 80 Line Input #1, X Next i Line Input #1, X If X Like "<PropertyType2>*</PropertyType2>" Then Range("AB" & d) = X Close #1 Next d End Sub谢谢 -
如果您需要发布更新的代码,最好编辑您的问题并将其添加到此处:cmets 中多于一行的代码都不是真正可读的