我尝试连接字符串n次,我需要首先提取“(”和“)”之间的文本,然后连接它们,字符串通常看起来像这样
第一个月
这将是我正在寻找的解决方案
的数据
这是我尝试过的,它可以工作,但它只替换单元格i, lastcol + 1
中的内容“newcount”次数,我知道我需要使用类似的东西Oldvalue & " / " & Newvalue
个
但我不知道怎么把这个放进去
Dim StartPos, EndPos, newcount, i, a As Integer
Dim StrEx, Oldvalue, Newvalue As String
For i = rcount - Count To 4 Step -1
StrEx = ActiveSheet.Cells(i, "G").Value
newcount = Len(StrEx) - Len(Replace(StrEx, "(", ""))
If Len(StrEx) - Len(Replace(StrEx, "(", "")) = 0 Then
Else
For a = 1 To newcount Step 1
StrEx = ActiveSheet.Cells(i, "G").Value
StartPos = InStr(StrEx, "(")
EndPos = InStr(StrEx, ")")
Oldvalue = Mid(StrEx, StartPos, EndPos - StartPos + 1)
ActiveSheet.Cells(i, "G").Value = Application.WorksheetFunction.Substitute(StrEx, Oldvalue, "", 1)
ActiveSheet.Cells(i, lastcol0 + 1).Value = Oldvalue
Next a
End If
Next i
个字符
5条答案
按热度按时间jc3wubiy1#
另一种方式,因为你标记了Excel公式太:
的数据
B1
中的公式:字符串
gojuced72#
使用正则表达式
字符串
3gtaxfhh3#
看看下面的套路。它处理一个单元格(这意味着您必须从数据循环中调用它),并将结果写入该单元格旁边的两个单元格中。
基本上,该例程使用VBA函数
Split
获取元素列表,然后循环遍历这些元素以将名称与CI编号分开。这两个片段都收集在数组中。循环结束后,使用Join
将两个结果数组写入单元格。字符串
nr9pn0ug4#
假设原始数据包含在列A中。处理后的结果将写入C列和D列。
字符串
| B栏|C列|D列| Column D |
| --|--|--| ------------ |
| |氧化铁黑/氧化铁红/氧化铁黄|(CI 77499)/(CI 77491)/(CI 77492)| (CI 77499) / (CI 77491) / (CI 77492) |
| |氧化铁黑/氧化铁红|(CI 77499)/(CI 77491)| (CI 77499) / (CI 77491) |
| |氧化铁红|(CI 77491)| (CI 77491) |
uplii1fm5#
通过一点重组,你可以
Split
字符串,然后提取旧的和新的:字符串