我正在寻找一种提取2个字符之间的文本并将其复制到电子表格末尾的列中的方法。
例如,我的文本看起来像[abcdefg],都在A列中,我希望提取“ [”之间的文本并将其复制到工作表末尾的新列中(作为新列)
谢谢
答案 0 :(得分:1)
我会诉诸功能,因为它们只是最简单的。要在2个字符之间提取数据,可以混合使用MID
和FIND
函数。
因此,假设您的数据位于单元格A1
中,则可以将此公式放在要解析值的单元格中:
=MID(A1,FIND("[",A1)+1,FIND("]",A1)-FIND("[",A1)-1)
如果要使其自动化,可以将其放入宏中,然后复制/粘贴特殊值以删除该函数并保留这些值。
答案 1 :(得分:0)
如果要将其写入vba模块,循环访问A列中的所有条目,然后将[]中的文本提取到B列中的条目,则可能类似于:
Dim ws as Worksheet
Dim i as integer
Dim lastRow as Integer
Dim brack1pos as Integer
Dim brack2pos as Integer
Set ws = ThisWorkbook.Worksheets("My Sheet Name")
for i = 1 to lastRow 'I'll leave to you how to find the last row
brack1pos = InStr(ws.Range("A" & i), "[")
brack2pos = InStr(ws.Range("A" & i), "]")
ws.Range("B" & i) = Trim(Mid(ws.Range("A" & i), brack1pos + 1, brack2pos - brack1pos - 1))
next
答案 2 :(得分:0)
这是针对单元格1、1中的文本的,但是当您遍历行时,可以在其中扔一些变量。它将抓住方括号内的值并对其进行修剪,其他文本可以位于方括号的前面或后面。
Dim iPos1 As Integer
Dim iPos2 As Integer
iPos1 = InStr(Sheet1.Cells(1, 1), "[")
iPos2 = InStr(Sheet1.Cells(1, 1), "]")
Sheet1.Cells(1, 2) = Trim(Mid(Sheet1.Cells(1, 1), iPos1 + 1, iPos2 - iPos1 - 1))