2017-04-08 39 views
-3

我在特定列的細胞,其在括號[]具有數字多行文本,在Excel的多行文本截斷

LINK TO FILE

實際數據運行到超過1000行的每一行,要生成結果在新插入的列中輸出1和2。

我有公式提取支架之間寫的文本,但它只在第一行工作,而不是在整個多行文本中。

=MID(A2,FIND("[",A2)+1,FIND("]",A2)-FIND("[",A2)-1) 

任何人都可以幫我用宏在特定的列「ABC」上運行,只保留括號中的文本。

+0

它在我看來像你所要做的就是保留第一個空格剩下的文字。 – Jeeped

+0

對不起,我將來會盡量記住這一點。你是對的 – sapna

回答

2

試着這麼做:

Sub get_btw_bracket() 

    output_row = 1 
    input_row = 1 
    input_column = 1 

    Do Until Sheet1.Cells(1, input_column) = "ABC" Or input_column = 50 
     input_column = input_column + 1 
    Loop 
    If input_column = 50 Then Exit Sub 

    Do Until Sheet1.Cells(input_row, input_column) = "" 
     cell_data = Sheet1.Cells(input_row, input_column) 
     split_by_newline = Split(cell_data, Chr(10)) 

     For Each element In split_by_newline 
      Sheet1.Cells(output_row, 10) = Right(element, Len(element) - InStr(element, "[") + 1) 
      output_row = output_row + 1 
     Next element 
     input_row = input_row + 1 
    Loop 
End Sub 
+0

我的列更改可以通過標題名稱找到它嗎?並插入數據的下一列? – sapna

+0

「Sheet1.Cells(input_row,1)」中的「1」是該列的位置。 「1」表示列A,「2」表示列B等等。如果要更改列,則需要將「1」更改爲變量,並將該變量設置爲要循環訪問的列。因此,您需要另一個do循環,循環遍歷第1行中的列並找到您的標題名稱。 – Charles

+0

不幸的是,它沒有任何我已經更新了screeshot 2至極列名,你能幫忙嗎? – sapna

0

啓用您的工作表,請按Alt + F11並選擇插入宏 - >模塊並粘貼到模塊窗口下面的代碼,

Sub SplitCells() 
'Update 20141024 
Dim Rng As Range 
Dim WorkRng As Range 
On Error Resume Next 
xTitleId = "KutoolsforExcel" 
Set WorkRng = Application.Selection 
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, 
Type:=8) 
For Each Rng In WorkRng 
lLFs = VBA.Len(Rng) - VBA.Len(VBA.Replace(Rng, vbLf, "")) 
If lLFs > 0 Then 
    Rng.Offset(1, 0).Resize(lLFs).Insert shift:=xlShiftDown 
    Rng.Resize(lLFs + 1).Value = Application.WorksheetFunction.Transpose(VBA.Split(Rng, vbLf)) 
End If 
Next 
End Sub 

保存模塊中,選擇要修改的列的範圍,然後按模塊中的F5鍵。範圍再次顯示在對話框中。按確定。 現在你將把所有的文本放在不同的行中。您現在可以使用此列並使用公式來派生所需的字符串。希望這可以幫助。

+0

如果你不想使用宏,並希望用純粹的Excel做到這一點,也有一種方法。讓我知道如果你想要 –

+0

謝謝gowtham,但解決方案拆分多行分隔行,我有興趣保持所有內容在同一單元格,但刪除各自的多行文本,然後標籤看到更新的圖像,因爲預期結果 – sapna

+0

@sapna我不理解兩個圖像。兩者似乎都是相似的。請詳細說明.... –