1、首先打开Microsoft Office Excel 2007,新建文档并保存文件名《Excel怎样快速把两段以符号分隔文本相同分出来 .xlsm》(演示文件,下面代码复制到能运行宏的工作簿都可以)如图。
2、然后按下快捷键ALT+F11打开VBE(宏)编辑界面,然后点菜单栏【插入】下拉中列表中点【模块(M)】如图。
3、然后插入了一个模块1,在代码框中复制如下代码:Sub 选两段符号分隔文本取出相同() '2020-9-20 22多唉捋胝:21:14 Dim myr1s As Range, myr2s As Range, i As Long Dim r1 As Long, r2 As Long, m1 As String, m2 As String Dim mb, mb1, mb2, j As Long, d1 As Object, d2 As Object, mc() Set myr1s = Selection Set myr2s = Application.InputBox(Prompt:="选择另段文本的单元格区域", Type:=8) r1 = myr1s.Count r2 = myr2s.Count m = Application.InputBox(Prompt:="输入文本分隔符号", Default:=",", Type:=2) If r1 <> r2 Then Exit Sub ReDim mc(1 To r1) For i = 1 To r1 m1 = myr1s.Cells(i).Text m2 = myr2s.Cells(i).Text mb1 = Split(m1, m) mb2 = Split(m2, m) Set d1 = CreateObject("scripting.dictionary") For j = 0 To UBound(mb1) d1.Add mb1(j), j Next j Set d2 = CreateObject("scripting.dictionary") For j = 0 To UBound(mb2) If d1.Exists(mb2(j)) = True Then d2.Add mb2(j), j End If Next j If d2.Count = 0 Then mc(i) = "无相同数据" Else mb = d2.keys For j = 0 To UBound(mb) If j = 0 Then mc(i) = mb(j) Else mc(i) = mc(i) & m & mb(j) End If Next j End If Next i Set myr2s = Application.InputBox(Prompt:="选择一个单元输出各行相同数据", Type:=8) myr2s.Resize(r1, 1) = WorksheetFunction.Transpose(mc)End Sub
4、以上操作动态过程如下:
5、回到工作表窗口,首先选第一段文本数据,然后运行【选两段符号分隔文本取出相同】宏(菜单栏中点【视图】中下列表中【宏】列表【查芬简砝鬃看宏(V)】打开宏对方框,选该宏名,执行),提示“选择另段文本的单元格区域”选好后再提示输入文本分隔符号(默认是“,”),再提示"选择一个单元输出各行相同数据",选好一单元格后输出结果,运行过程如下图。
6、如果觉得这篇经验帮到了您,请点击下方的 “投票点赞" 或者“收藏”支持我!还有疑问的话可以点击下方的 “我有疑问”,谢谢啦!