在VBA中将单词转换为数字

时间:2012-03-26 06:23:59

标签: vba excel-vba excel

在excel中,我有一列我需要转换为整数的单词。例如,我有一列行业:

  • 资本货物,
  • 列出项目,
  • 消费者服务,
  • 技术等

我想用整数替换每个行业。

下面,我在VBA尝试但没有用的东西。在这里,我试图遍历列,如果当前单元格中的单词与前一单元格中的单词不同,那么我为它分配一个不同的整数。 (但它不起作用)

Sub WordtoNum()
    Dim ws As Worksheet
    Dim varList
    Dim rng1 As Range
    Dim lngCnt As Long
    Dim startrow, wsheet, tt As Integer

    ' Enter the worksheet and starting row
    '---------------------------------------
    wsheet = 2
    startrow = 2
    '---------------------------------------

    Set ws = Sheets(wsheet)
    Set rng1 = ws.Range(ws.[a1], ws.Cells(Rows.Count, "A").End(xlUp))
    varList = rng1.Value2
    tt = 0

    For lngCnt = startrow To UBound(varList)
        If varList(lngCnt, 2) <> varList(lngCnt - 1, 2) Then _
           tt = tt + 1
        varList2(lngCnt, 2) = tt
    Next
    rng1.Value2 = varList
End Sub

此代码主要基于我在最近的相关帖子中收到的帮助。

1 个答案:

答案 0 :(得分:1)

为什么不在Excel函数中使用构建,VLOOKUP?它在已排序的列中查找单词并从另一列返回一个值,但与匹配的行相同。 Read more on Office Help about VLOOKUP

我意识到你问的问题是如何在VBA中做到这一点,但是,我不确定你是否真的想将VBA用作练习或者只是不知道这个功能?