我在特定列的細胞,其在括號[]具有數字多行文本,在Excel的多行文本截斷
實際數據運行到超過1000行的每一行,要生成結果在新插入的列中輸出1和2。
我有公式提取支架之間寫的文本,但它只在第一行工作,而不是在整個多行文本中。
=MID(A2,FIND("[",A2)+1,FIND("]",A2)-FIND("[",A2)-1)
任何人都可以幫我用宏在特定的列「ABC」上運行,只保留括號中的文本。
我在特定列的細胞,其在括號[]具有數字多行文本,在Excel的多行文本截斷
實際數據運行到超過1000行的每一行,要生成結果在新插入的列中輸出1和2。
我有公式提取支架之間寫的文本,但它只在第一行工作,而不是在整個多行文本中。
=MID(A2,FIND("[",A2)+1,FIND("]",A2)-FIND("[",A2)-1)
任何人都可以幫我用宏在特定的列「ABC」上運行,只保留括號中的文本。
試着這麼做:
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
啓用您的工作表,請按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鍵。範圍再次顯示在對話框中。按確定。 現在你將把所有的文本放在不同的行中。您現在可以使用此列並使用公式來派生所需的字符串。希望這可以幫助。
如果你不想使用宏,並希望用純粹的Excel做到這一點,也有一種方法。讓我知道如果你想要 –
謝謝gowtham,但解決方案拆分多行分隔行,我有興趣保持所有內容在同一單元格,但刪除各自的多行文本,然後標籤看到更新的圖像,因爲預期結果 – sapna
@sapna我不理解兩個圖像。兩者似乎都是相似的。請詳細說明.... –
它在我看來像你所要做的就是保留第一個空格剩下的文字。 – Jeeped
對不起,我將來會盡量記住這一點。你是對的 – sapna