|
- Sub 小合并A()
- arr = Range("A2:A15") '指定区域------
- brr = Range("B1", Range("B1").End(xlToRight)) '指定横向区域-N-个数
- Dim jg(), q$, p$
- ReDim jg(1 To UBound(arr), 1 To UBound(brr, 2))
- Set d = CreateObject("scripting.dictionary")
- Set reg = CreateObject("vbscript.regexp")
- reg.Global = True
- For i = 1 To UBound(arr)
- reg.Pattern = "[A-Z]"
- Set ma = reg.Execute(arr(i, 1))
- a = ma.Count
- For k = 0 To ma.Count - 1
- d(k) = ma(k)
- Next
- reg.Pattern = Join(d.items, "|")
- s = reg.Pattern
- For j = 1 To UBound(brr, 2)
- If reg.test(brr(1, j)) Then
-
- q = Right(arr(i, 1), 7) '加上这段
- p = Right(brr(1, j), 7) '加上这段
- If q <> p Then '加上这段
- jg(i, j) = ""
- End If '加上这段,结果没变
-
- Else
- 'q = Right(arr(i, 1), 7)
- 'p = Right(brr(1, j), 7)
-
- jg(i, j) = arr(i, 1) & "一" & brr(1, j)
- End If
- Next
- d.RemoveAll
- Set ma = Nothing
- Next
- Range("b2").Resize(UBound(arr), UBound(brr, 2)) = jg
- End Sub
复制代码 求 Right(arr(i, 1), 7)不等 Right(brr(1, j), 7)
数值是取后面7个字符
怎么调换位置
本帖最后由 大灰狼1976 于 2022-1-1 20:37 编辑
根据你的代码,jg(i, j) = arr(i, 1) & "一" & brr(1, j)只在满足If reg.test(brr(1, j)) Then条件为否时才会发生,而你添加的代码是在If reg.test(brr(1, j)) Then条件为真里面,本来里面就没有jg(i, j) 的赋值语句,所以你的jg(i, j) = ""有和没有都一样。
|
|