首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用VBA过滤Excel中的区号

用VBA过滤Excel中的区号
EN

Stack Overflow用户
提问于 2016-06-17 16:37:02
回答 1查看 101关注 0票数 0

需要一些帮助。我已经很长一段时间没有编写脚本/编码了,现在已经生疏了。

问题:I有一个电子表格(Excel),其中包含一个月以上的调用(超过30k记录)。我的目标是过滤掉具有特定区号(免费、本地calls...etc)的电话,并计算出长途电话所欠的金额。

此外,这是一个退休之家和最终用户不能正确输入电话号码。我需要在数字开头去掉3-4位数字.

例子: 1800-XXX-XXXX或800-XXX-XXXX \ 1605-XXX-XXXX

下面是我目前的代码,我不知道如何将区域中的3-4位数字合并,并让它用前3-4位数解析H列中的每条记录

电话号码存储在H列中

阵列TFL将存储我需要过滤的所有区号。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-17 16:55:59

我个人会为此使用一个正则表达式:

代码语言:javascript
复制
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正则表达式5.5的引用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37886413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档