VBA:在具有动态数据集的列中循环,并从每个单元格中删除特定文本



我有问题;

我正在创建一个宏,该宏将贯穿工作表中的一列,在本例中为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

我想我可能使用通配符不正确,尽管我不确定,而且我的代码给了我一个错误,所以我被难住了。如有任何帮助,我们将不胜感激。

尝试这个基本的正则表达式(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 = "2d{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

模式是数字二,然后是零到九之间的五个随机数字,然后是七哦三。

最新更新