Excel文本格式,主键可以有字符串或数字格式,如何vlookup

时间:2017-11-20 12:12:17

标签: excel vba excel-vba

我的每个客户都有一张带有数字身份证号码的Excel表格:

example

此图片上的第三个数字是在数字前添加引号:'4346000273。它使excel将其读作文本编号。

我将这些数字用作Application.Vlookup代码中vba函数的第一个参数。

我将这些数字存储为类型为Client的{​​{1}}类属性:

String

我想知道处理这种情况的正确方法是什么。我担心可能会发生这样的情况,因为这种格式差异Private identityNumber As String Public Property Let setIdentityNumber(value As String) identityNumber = value End Property Public Property Get getIdentityNumber() getIdentityNumber = identityNumber End Property 'inside another sub, which creates a list of clients: clientCopy.setIdentityNumber = .Cells(i, column_identity).value 'how I use the numbers in VLookup Function getInfo(clientIdentity As String, infoWorkbook As Workbook) resultValue = Application.VLookup(clientIdentity, _ .Range(rangeString), 4, 0) 无法找到数字。

1 个答案:

答案 0 :(得分:1)

文本编号不是Excel中存在的内容。它是TextNumeric。 VBA中的VLookup显然不喜欢数值。为了解决这个问题"棘手" part,将参数声明为范围。像这样:

Public Function GetInfo(clientIdentification As Range) As Variant
    GetInfo = Application.WorksheetFunction.VLookup(clientIdentification, _
        Range("A1:B3"), 2, False)
End Function

这就是你得到的:

enter image description here