我有问题;
我想创建一个宏,该宏将贯穿工作表中的一列(在本例中为A列),并循环遍历包含数据的每个单元格。每当宏在一个单元格中循环时,我都需要它从每个单元格中删除一组特定的文本。我需要删除的文本永远不会更改,因为我从中提取的网站中的数据是相同的。但是,我需要删除的文本将始终后面跟着一串数字,在这种情况下,这表示到我工作的设施的进货货运单。
数据示例:
我尝试创建一个将保留数字但删除{“ isaId”:的宏。我需要数字自己复制到我正在制作的工具的另一部分中的HTML发送请求中。
这是我的代码:
Sub Test2()
Dim test As Worksheet
Set test = Worksheets("test")
Dim testcheck As Boolean
Range("A2").Select
Do Until IsEmpty(ActiveCell)
If testcheck = "27*703" Like "276782703" = True Then
' 276782703 is just an example number; the numbers will always be in this format, meaning they will always start with 2 and end with 703 with five random numbers in-between.
ActiveCell.FormulaR1C1 = testcheck
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub
我不确定我不确定使用通配符,尽管我不确定,而我提供的代码给我一个错误,所以我很困惑。任何帮助将不胜感激。
答案 0 :(得分:0)
尝试这种基本的正则表达式(RegEx)匹配。
Sub find2_____703()
Dim i As Long, str As String
Static rgx As Object
If rgx Is Nothing Then
Set rgx = CreateObject("VBScript.RegExp")
rgx.Pattern = "2\d{5}703"
End If
With Worksheets("test")
For i = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
str = .Cells(i, "A").Value2
With rgx
If .Test(str) Then
str = .Execute(str).Item(0)
End If
End With
.Cells(i, "A") = str
Next i
End With
End Sub
模式是数字2,然后是介于零和九之间的五个随机数字,然后是七-哦-三。