![](/img/trans.png)
[英]Python text file Excel, inserting number into excell not in correct format
[英]Format text file using Python or Excel
我有一個文本文件,看起來像:
ROOT: are DOBJ: money DOBJ: deal
DOBJ: products ROOT: count DOBJ: me DOBJ: deal
POBJ: amp ROOT: dads. POBJ: diapers
ROOT: get DOBJ: ecard DOBJ: it
ROOT: hutang
每個單詞都用制表符分隔。 該文件大約有50,000行。 我想格式化文件,使每一行都以ROOT開頭,然后是DOBJ,然后是POBJ。 每行只有一個ROOT,並且DOBJ / POBJ的數量未知,范圍為0-5。 我試圖將文件導入Excel工作表並嘗試進行HLOOKUP,但是我沒有得到想要的東西。 我想在VBA中編寫以下邏輯(我以前從未使用過VBA):
Dim sh As Worksheet
Dim rw As Range
Dim RowCount As Integer
Set sh = ActiveSheet
For Each rw In sh.Rows
if cellnumber(ROOT) != A
swap content(A), content of cell containing ROOT
有人可以幫助我處理此代碼,還是告訴我是否有使用Python或Excel的更好方法?
在VBA中,這應該可以幫助您入門。
Sub test()
Dim InputString As String
Dim RowToPerform As Long
Dim TextPath As Variant
Dim ArrayString() As String
Dim CounterArray As Long
TextPath = Application.GetOpenFilename("Txt Files,*.txt", Title:="Select Txt")
Open TextPath For Input As #1
Do Until EOF(1)
Line Input #1, InputString
RowToPerform = Cells(Rows.Count, 1).End(xlUp).Row + 1
'ArrayString = Split(InputString, "|")
ArrayString = Split(InputString, "ROOT:")
Cells(RowToPerform, 1).Value = "ROOT: "
Cells(RowToPerform - 1, 1).Value = Cells(RowToPerform - 1, 1).Value & ArrayString(0)
For CounterArray = LBound(ArrayString) To UBound(ArrayString)
If CounterArray > 0 Then Cells(RowToPerform, 1).Value = Cells(RowToPerform, 1).Value & ArrayString(CounterArray)
Next CounterArray
Loop
Close #1
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.