【问题标题】:VBA - Excel : spot a specific number in a columnVBA - Excel:在列中发现特定数字
【发布时间】:2013-06-10 12:57:34
【问题描述】:

我的 excel 文件中有一个列,其中包含这样的单词和数字:

我的目标是让我的程序分析本专栏的元素。现在,我正在尝试识别邮政编码,就我而言,它是一个四位数字(这里是 1121)。

所以我想从第一个元素循环到最后一个元素,并有一个匹配方法说“如果这个元素是一个数字并且有四个数字,那么......”。我不知道这在 VBA 中是否可行,而且我的研究非常低效,因为谷歌搜索我的关键词用于此查询会导致与我正在做的事情无关的结果。

我猜结构应该是这样的:

For i = 2 To lRowD
Range("D" & i).Activate
myResult = xxxxxxxxxxxxxxxxxx 'SOMETHING IDENTIFYING FOUR FIGURES NUMBERS

If myResult Then 'if Metro Manila in the address
  Range("A20").Value = ActiveCell.Value  'put the Zip Code in another cell
Else

End If
 Next i

【问题讨论】:

    标签: excel vba match


    【解决方案1】:

    这是你想要的吗?

    Sub ProcessColumn()
    Dim ws As Excel.Worksheet
    Dim lRowD As Long
    Dim cell As Excel.Range
    
    Set ws = ActiveSheet
    With ws
        lRowD = .Range("D" & .Rows.Count).End(xlUp).Row
        For Each cell In .Range("D2:D" & lRowD).Cells
            If Len(cell.Value) = 4 And (Val(cell.Value) = cell.Value) Then
                ws.Range("A20").Value = cell.Value  'put the Zip Code in another cell
            Else
                'do something else?
            End If
        Next cell
    End With
    End Sub
    

    【讨论】:

    • 我刚刚意识到这将允许十进制数字。当我在电脑前时,我可以修复它。
    • 嘿道格,谢谢你的回答,它完美地完成了这个把戏!不要担心十进制数字,我的列中的元素只会是地址中的元素,因此不涉及十进制数字。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 2017-04-28
    • 2014-08-03
    • 1970-01-01
    • 2019-10-15
    相关资源
    最近更新 更多