WWWで私の問題の解決策を見つけることができません。私は、さまざまな情報と、長いテキストファイルをインポートしたExcel VBA - 文字列を "テキストブロック"で検索し、次に次を検索します
: は、あなたが私を助けることを願って、それは次のようになります。
id 5
name node1
UPS_serial_number
WWNN 500507680350BD
status online
IO_group_id 0
IO_group_name io_grp0
partner_node_id 4
partner_node_name node2
config_node yes
UPS_unique_id
port_id 500507680456454
port_status active
port_speed 8Gb
port_id 500507680545644
port_status active
port_speed 8Gb
id 4
name node2
UPS_serial_number
WWNN 500507680200DDE8
status online
IO_group_id 0
IO_group_name io_grp0
partner_node_id 4
partner_node_name node1
config_node yes
UPS_unique_id
port_id 5005076803594BDE
port_status active
port_speed 8Gb
port_id 500507680235486F
port_status active
port_speed 8Gb
.
.
.
ほとんどこのような適切なフォーマットでフォーマットされたその: [文字列||値]
私は、最初のブロックを見て、名前、ID、WWPNの情報を取得し、別のワークシートに値をコピーします。 次に、2番目のブロックを調べて、同じ情報を取得します。名前、ID、WWPNをコピーしてコピーします。
次に、次のブロックと次のブロックなどとなります。テキストブロックは、ほぼ空の行で区切られている
Sub find_test()
Dim rng As Range
Dim rngCell As Variant
Dim LR As Long
Dim tRow
LR = Cells(1, 1).End(xlDown).Row
Set rng = Range("A1:A" & LR)
For Each rngCell In rng.Cells
tRow = rngCell.Row
If StrComp(rngCell.Value, "name") = 0 Then 'Node 1 Service IP
Worksheets("temp").Range("E16").Value = Worksheets("lsnodecanister").Range("B" & tRow).Value
End If
Next
End Sub
:
私は、次のコードを持っています。
ご存知ですか? わかりました。
は
敬具、 Kalain
'細胞(rows.count、1).END(xlup).Row'と'split'関数が役立ちます。 –
ありがとうございましたネイサン、私はまだ分割で動作しません。しかし、私はこの機能が必要ないと思う。テキストは既に列Aと列Bで分割されていますか、それともミスマッチですか? – Kalain
申し訳ありませんが、私は今理解しています:)あなたはこれを別のループで包む必要があります。 'do until range(" a "&lr + 1).value =" "'のようにして、 'LR = Cells(1 、1).End(xlDown).Row'しかし、 'LR = Cells(LR、1).End(xlDown).Row'に変更してください。 –