Преобразование слов в числа в VBA - PullRequest
2 голосов
/ 26 марта 2012

В 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 Ответ

1 голос
/ 26 марта 2012

Почему бы не использовать функцию построения в Excel, VLOOKUP?Он ищет слово в отсортированном столбце и возвращает значение из другого столбца, но в той же строке, что и совпадение. Подробнее о справке Office о VLOOKUP

Я понимаю, что вы задали вопрос о том, как это сделать в VBA, однако я не уверен, действительно ли вы хотели использовать VBA в качестве упражненияили просто не знал об этой функции?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...