定义variables时出错

你好,我有一个单元格的表,其中一列是座位号。 然而,座位号包含一些string值,如146A和大多数数字,如146。但是,在vba中,当我使用座位号进行查找时,我无法find正确的variables,如果我把dim seatno as integer那么值146A会给出错误,如果我dim seat no as string的数字不工作。我格式化整个座位没有专栏文本在Excel中,但错误仍然存​​在。 因此,我将需要帮助,我怎样才能定义variables将显示范围从1到146A的所有值。 这是我所做的代码

 Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim answer As Integer answer = TextBox1.Value TextBox2.Value = WorksheetFunction.VLookup(answer, Sheets("L12 - Data Sheet").Range("B:E"), 2, False) TextBox3.Value = WorksheetFunction.VLookup(answer, Sheets("L12 - Data Sheet").Range("B:E"), 3, False) TextBox4.Value = WorksheetFunction.VLookup(answer, Sheets("L12 - Data Sheet").Range("B:E"), 4, False) End Sub 

如果表格中的列B(“L12 – 数据表”)肯定是文本,则将其作为string声明。

 Dim answer As String answer = TextBox1.Value TextBox2.Value = WorksheetFunction.VLookup(answer, _ Sheets("L12 - Data Sheet").Range("B:E"), 2, False) 

如果“L12 – Data Sheet”中有string(例如146A )和真实数字(例如146 )的组合!B:B然后从TextBox1中以string的forms检索值并尝试将其转换为真实的数字。

 Dim answer As String answer = TextBox1.Value TextBox2.Value = WorksheetFunction.VLookup(Iif(IsNumeric(answer), Int(answer), answer), _ Sheets("L12 - Data Sheet").Range("B:E"), 2, False) 

如果在'L12 – 数据表'中没有一致的值types,那么B:B就用你可用的所有东西来打它。

 Dim answer As Variant, mtch As Long answer = TextBox1.Value Select Case True Case Not IsError(Application.Match(CStr(answer), Sheets("L12 - Data Sheet").Columns(2), 0)) mtch = Application.Match(CStr(answer), Sheets("L12 - Data Sheet").Columns(2), 0) Case Not IsError(Application.Match(Int(answer), Sheets("L12 - Data Sheet").Columns(2), 0)) mtch = Application.Match(Int(answer), Sheets("L12 - Data Sheet").Columns(2), 0) End Select 'error control needed here in case mtch is still not a row number debug.print mtch TextBox2.Value = Sheets("L12 - Data Sheet").Cells(mtch, "C").Value TextBox3.Value = Sheets("L12 - Data Sheet").Cells(mtch, "D").Value TextBox4.Value = Sheets("L12 - Data Sheet").Cells(mtch, "E").Value