选择所有以04开头的数字和VBA

时间:2014-05-15 08:11:38

标签: excel vba

您好我有一个客户编号列表,每个客户最多有3个电话号码,这些电话号码不是家庭或移动电话,他们都是混淆的。 我希望能够找到B,C或D列是否有手机号码(从04开始),如果他们这样做,则将该手机号码(从B,C或D)和客户号码(A列)复制到一张新纸。 如果有多个手机号码,我想复制两次客户号码。

2 个答案:

答案 0 :(得分:0)

您的问题并非100%明确,但我相信这就是您所要求的。

您有一个客户ID,最多有3个电话号码,就像这样。

enter image description here

您想要创建一个客户ID和手机号码列表,如下所示:

enter image description here

以下是我使用的步骤。激活宏录制器并执行这些步骤,如果您需要自动执行此操作,应为您提供足够的VBA以启动您。

  1. 您只想保留手机号码前缀04(绿色单元格)。 enter image description here

  2. 在3个相邻列中,输入IF语句以检查数字的开始方式。如果是手机号码,请返回号码,否则请留空。  =IF(LEFT(D22,2)="04",D22,"")(假设D22包含电话号码) enter image description here

  3. 选择所有IF列,复制它们并将特殊值粘贴为值。删除原始电话号码列。 enter image description here

  4. 现在只需将您的customerID列和每个移动号码列一个复制到另一个上面,如下所示: enter image description here

  5. 最后按手机号码排序,将所有空白放入一个地方并删除这些行。 enter image description here

答案 1 :(得分:0)

您可以使用高级过滤器。这是我最近使用的一个例子

Sheets("Tabelle1").Range("A3:Q" & LetzteZelle).AdvancedFilter Action:=xlFilterCopy, _
    CriteriaRange:=Sheets("Tabelle1").Range("T3:AJ4"), CopyToRange:=Range( _
    "A5:Q5"), Unique:=False

要使其工作,您必须复制原始表的标题以制作条件表。在这里你写下你的标准

=04*

在包含电话号码的每列中,但所有列都在不同的行中。 (同一行中的标准 - AND,在不同的行 - 或者) 现在,您修改我的示例的范围以适合您的工作表,并从您希望将数据复制到的工作表中启动此makro