需要一些帮助。自从我完成脚本/编码并且现在真的生锈以来已经很长时间了。
问题:我有一个电子表格(Excel Visual Basic),其中包含一个月内的电话(超过30k的记录)。我的目标是过滤掉具有特定区号(免费电话,本地电话等)的电话,并计算他们拨打长途电话所需的金额。
此外,这是一个养老院,最终用户没有正确输入电话号码。我需要在数字开头处删除3-4位数字。
示例:1800-XXX-XXXX或800-XXX-XXXX | 1605-XXX-XXXX
这是我目前的代码,我迷失在如何将3-4位数字合并到该区域并让它解析H列中的每个记录前3-4位
电话号码存储在第H列
中数组TFL将存储我需要过滤掉的所有区号。
Sub CleanEntry()
Dim i As Integer
Dim TFL As Variant
TFL = Array("1800", "1877")
For i = Sheet1.UsedRange.Rows.Count To 1 Step -1
If Left(Cells(i, "H"), 4) Like TFL(i) Then
Sheet1.Rows(i).EntireRow.Delete
End If
Next
End Sub
答案 0 :(得分:1)
我个人使用正则表达式:
Sub CleanEntry()
Dim i As Integer
Dim filter As New RegExp
filter.Pattern = "^1?(8(77|00))|605" 'Or whatever else you need to match.
For i = Sheet1.UsedRange.Rows.Count To 1 Step -1
If filter.Test(Trim$(Cells(i, "H").Value)) Then
Sheet1.Rows(i).EntireRow.Delete
End If
Next
End Sub
注意:您需要添加对Microsoft VBScript正则表达式5.5的引用。