-2

我正在寻找一个特定的脚本来移动或替换不同单元格中的一些特定值。

我给你举个例子,也许更清楚。

我有很多这样的细胞:

moving barn 1990/01
rebuild house 1990/212
moving house 1992/23 * changing
rebuild 54 barn 92/12

结果就是这样。

1990/01
1990/212
1992/23
92/12

现在我想将年份/数字移动到另一个单元格。或仅用年份/数字替换该值。但是年份/数字并不总是在单元格的末尾。而年份/数字,数字并不总是 2 位数字。

我正在寻找一些可以找到以下内容的脚本:(x = number) xxxx/xx xxxx/xxx

然后转移到另一个牢房。

希望你明白我的意思,你能帮我解决这个问题。

4

1 回答 1

0

我推荐正则表达式。请参阅此处了解所有内容

Sub RegexReplace()

    Dim objRegExp As Object
    Dim colMatches As Object
    Dim s As String
    Dim vDB As Variant, vR() As Variant
    Dim r As Long, i As Long
    
    Set objRegExp = CreateObject("VBscript.RegExp")
    objRegExp.Pattern = "[0-9]{1,4}/[0-9]{1,3}"
    objRegExp.IgnoreCase = True
    objRegExp.Global = False
    
    vDB = Range("a1", Range("a" & Rows.Count).End(xlUp))
    r = UBound(vDB, 1)
    
    ReDim vR(1 To r, 1 To 1)
    For i = 1 To r
        s = vDB(i, 1)
        If objRegExp.Test(s) Then
           Set colMatches = objRegExp.Execute(s)
           vR(i, 1) = colMatches.item(0)
        End If
    Next i
    Range("c1").Resize(r, 1) = vR
End Sub

当您的数据如下所示在 a 列中时,提取 c 列中的数据。

在此处输入图像描述

于 2021-03-01T15:37:09.720 回答