|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
关于:
周老师(ab)
替换为:
周老师(语文、数学)
您的代码中的正则表达式是:
([a-f]*)
我个人感觉应该是:
([a-f]+)
整理学习代码如下:
- Public dic
- Sub pey_testb()
- Dim brr, k2
- k2 = [h1].End(4).Row - 1
- brr = [h2].Resize(k2, 2)
- Set dic = CreateObject("scripting.dictionary")
- For i = 1 To k2
- dic(brr(i, 1)) = brr(i, 2)
- Next i
- k0 = [c1].End(4).Row - 1
- arr = [c2].Resize(k0, 2)
- With CreateObject("VBScript.RegExp")
- .Global = True
- .IgnoreCase = False
- .Pattern = "([a-f]+)"
- For i = 1 To k0
- For j = 1 To 2
- txt = arr(i, j)
- arr(i, j) = Evaluate("=""" & .Replace(txt, """&qukh(" & """$1""" & ")&""") & """")
- Next j
- Next i
- End With
- Cells(2, 11).Resize(k0, 2) = arr
- End Sub
- Function qukh(a) 'a-b???????????????
- b = dic(Mid(a, 1, 1))
- For i = 2 To Len(a)
- b = b & "??" & dic(Mid(a, i, 1))
- Next i
- qukh = b
- End Function
复制代码
您的代码真是奇思妙想,无一行一字之多余,严谨熟练啊。 |
|