将文本作为值保存到列

时间:2014-09-16 20:44:01

标签: excel vba excel-vba

我正在处理长度为八个字符的识别码(所有数字)。每两位数字代表一个唯一标识符。例如,代码10203040是车辆(10),卡车(20),4x4(30),丰田(40)。在Excel工作表中,我希望人们能够输入一个8位数的代码,并让它显示1级,2级,3级和4级描述符以及完整描述。我现在如何实现这一点是通过获取8位代码,通过固定宽度将其转换为文本到列,然后对每个2位代码执行VLOOKUP。这个宏是:

Sub Macro2()
    Dim UNSPSC As String
    UNSPSC = Range("A2")

    Range("B2") = UNSPSC

    Range("B2").Select

    Selection.TextToColumns Destination:=Range("B2"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(2, 1), Array(4, 1), Array(6, 1), Array(8, 1)), _
        TrailingMinusNumbers:=True

End Sub

虽然这有效,但问题在于,执行多次搜索的任何人都必须单击每次更换单元格的恼人警告(隐藏文本到列)。有没有办法将文本作为值或字符串存储到列产品中,以便不显示此警告(即单元格中没有覆盖数据)?理论上,我可以将值拉入宏/ VBA代码中的VLOOKUP。

1 个答案:

答案 0 :(得分:0)

OP似乎可能更喜欢关闭警报,但为了回答,请添加:

Range("B2:E2") = ""  
在Dim声明之后立即