我想在Excel中編寫一個簡單的密碼,它將從單元格中取出一個文本,將每個字母替換爲相鄰列中的數字,然後將輸出放入另一個單元格中。無法讓VLOOKUP工作 - 它以公式的形式工作,但不知何故無法在VBA代碼中使用它。試圖做一個簡單的過程,首先會做一個字符(稍後添加循環會很容易),但它不起作用。它編譯,但是當我運行它(按一個按鈕,我分配它),我得到了「#N/A」在結果單元格。Excel中使用表替換Excel中的VBA中的簡單密碼
Sub Zakoduj()
Dim Literka As String
Dim Liczba As Variant
Dim ColumnToTake As Integer
ColumnToTake = 1 ' Liczby
On Error Resume Next
Err.Clear
Literka = Sheets("Sheet2").Range("B2").Value
Liczba = Application.VLookup(Literka, Sheets("Sheet1").Range("A5:B39"), ColumnToTake, False)
If Err.Number = 0 Then
Sheet2.Range("B6").Value = Liczba
Else
Sheet2.Range("B6").Value = Err.Number
End If
End Sub
範圍包含如下數和字符:
Kod Litera
16 A
73 B
12 C
40 D
70 E
etc. etc.
無法找到一個教程將解釋如何做到這一點...
'Application.worksheetfunction.VLookup'你之前通過加強和VLOOKUP後,嘗試刪除錯誤捕捉到,我覺得函數調用失敗而不是返回不適用也許? –
是不是你的列回到前面?你目前的'VLookup'正在你的'Kod'列中尋找你從'Sheets(「Sheet2」)得到的值。Range(「B2」)。Value' - 但是你聽起來好像要從列中查找稱爲'Litera',所以你可能需要切換這些列。 (而且你也從第一列返回值,所以如果發生匹配,你只是返回相同的值,你可能想設置ColumnToTake爲'2'。) – YowE3K
你可以嘗試[使用數組](https://stackoverflow.com/a/22050148/7690982)也是,因爲它們真的被優化了。而示例設置替換函數來替換您的密碼 – danieltakeshi