2012-03-26 211 views
2

在Excel中,我有一列需要轉換爲整數的單詞。例如,我有行業列:將單詞轉換爲VBA中的數字

  • 資本貨物,
  • 列表項,
  • 消費者服務,
  • 技術等

我想更換一個這些行業具有整數。

下面是我在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 

此代碼主要基於我在最近的相關文章中收到的幫助。

+3

請:1)向我們展示你想要完成的一個例子。 2)比「它不工作」更具體。 3)縮進你的代碼,讓我們的凡人更容易閱讀它。我這次爲你做了。也就是說,'varList2'在分配給它後既沒有聲明也沒有被使用。你的意思是'varList(lngCnt,2)= tt'?你的問題需要一些清理。 – 2012-03-26 07:00:27

回答

1

爲什麼不使用在Excel函數中構建VLOOKUP?它在已排序的列中查找單詞並從另一列返回值,但與匹配的行相同。 Read more on Office Help about VLOOKUP

我意識到你問的問題是如何在VBA中做到這一點,但是,我不確定你是否真的想用VBA作爲練習還是隻是不知道這個功能?

+0

+1我使用Vlookup的建議。 – 2012-03-26 08:19:56