在State缩写后提取邮政编码

时间:2015-03-06 00:00:31

标签: string excel vba excel-vba excel-formula

我有一个Excel文件,其中包含多个客户的完整邮寄地址,我需要填写一个只包含5位邮政编码的列,这些邮政编码始终遵循相同的州名缩写," TX。&#34 ;有时会在邮政编码后面添加一个'电话号码,有时它不是。

如果有办法在TX之后选择5位数并将该信息移到新单元格,直到最后一行,我还没有找到它。我对VBA来说是全新的,只需要一次性的工作。示例:

D3有Namey Name Streety Street TX 75029 432-239-2490
D4有Namity Names Streetick Street TX 73902

我想将75029分别移至F3,将73902移至F4。

3 个答案:

答案 0 :(得分:3)

“对于一次性工作”VBA似乎有点矫枉过正,甚至没有必要的公式。只需将ColumnD复制到ColumnF中,选择ColumnF并使用替换...(HOME>编辑,查找和替换),查找内容:

*TX

X后面有空格)

全部替换,然后查找内容:

*

*之前有一个空格)

全部替换

答案 1 :(得分:1)

像这样的excel公式?

=MID(D3,FIND(" TX ",D3)+4,5)
在F3中

然后向下拖动

答案 2 :(得分:0)

将s替换为您的输入并将zip放在您想要的位置。

    Dim s As String
    Dim idx As Long
    Dim zip As String

    s = "Namey Name Streety Street TX 75029 432-239-2490"

    idx = InStr(1, UCase(s), " TX ")

    If idx > 0 Then
        zip = Mid(s, idx + 4, 5)
    Else
        zip = "Not found"
    End If