我想在Excel中编写一个简单的密码,它将从单元格中取出文本,将每个字母替换为相邻列中的数字,然后将输出放在另一个单元格中。无法使VLOOKUP工作 - 它可以作为一个公式,但不知何故不能让它在VBA代码中工作。试图先做一个简单的程序,为一个字符执行此操作(稍后添加一个循环很容易),但它不起作用。它编译,但是当我运行它时(按下我指定的按钮)我得到了#34;#N / A"在结果单元格中。
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.
无法找到解释如何执行此操作的教程......
答案 0 :(得分:1)
这是修改后的版本。请注意,值在纸张1的A1:B6
中Option Explicit
Sub Zakoduj()
Dim Literka As Integer
Dim Liczba As String
Dim ColumnToTake As Integer
ColumnToTake = 2 ' Liczby
Literka = Sheets("Sheet2").Range("B2").Value
Liczba = "Value not found" 'If value is not found
On Error Resume Next
Liczba = Application.WorksheetFunction.VLookup(Literka, Sheets("Sheet1").Range("A1:B6"), ColumnToTake, False)
On Error GoTo 0 'Always reset error handling after On Error Resume Next
Sheet2.Range("B6").Value = Liczba
End Sub