从引用中删除前导零

问题描述

我使用 LimeSurvey 答案来验证我在 Excel 中需要的数据。

为了检查我是否有正确的人,他们在调查中输入了 ID 号码。
然后是这样的:
我读取了身份证并从他们的身份证中提取了他们的身份证号码,然后使用此代码将其放入单元格“Personalia: B7”中(这是一个带有值的文本)。

=LEFT(PROPER(RIGHT(eIDimport!A2;LEN(eIDimport!A2)-FIND(CHAR(34);eIDimport!A2)));FIND("h=";PROPER(RIGHT(eIDimport!A2;LEN(eIDimport!A2)-FIND(CHAR(34);eIDimport!A2))))-13)

它的值也与“Dataimport: M2 and L7 (=Personalia!B7)”相关联

问题在于调查不会导出前导零,而 ID 中的值会。
在我的代码中,要检查哪一行数据是必需的,身份证号码(来自卡)和调查号码必须相同。
如果它以零开头,从逻辑上讲,这些值不匹配,我会收到错误消息。

示例:
我的身份证号码是 026548321。
身份证上的值是026548321。
调查结果为 26548321。

如果 IDcard 值以 0 开头,如何删除“Dataimport M2”单元格中的第一个 0?

我尝试了在此问答中找到的一些代码,但它们不起作用。
我也尝试了一些自定义格式,但它也没有改变。我猜是因为它是参考而不是手动输入。

解决方法

替换前导字符

上下文:...不导出前导零...

  • 如果您需要删除多个零,您可以使用 RegEx 'based' UDF。图片展示了它是如何工作的。

enter image description here

  • Excel中:

    =relaceLeadingChars('DataImport'!M2,"0")
    
  • VBA中:

    Sub replaceLeadingCharsTEST()
        Dim SearchString As String: SearchString = "000203456"
        Dim ResultString  As String
        ResultString = replaceLeadingChars(SearchString,"0")
        Debug.Print ResultString ' Result: "203456"
    End Sub
    

用户定义函数 (UDF)(在标准模块中,例如 Module1

Function replaceLeadingChars( _
    ByVal SearchString As String,_
    ByVal FindChar As String,_
    Optional ByVal ReplaceChar As String = "",_
    Optional ByVal doIgnoreCase As Boolean = False) _
As String
    '=replaceLeadingChars(A1,"0")
    With CreateObject("VBScript.RegExp")
        .Global = True
        .IgnoreCase = doIgnoreCase
        .Pattern = "^[" & FindChar & "]*"
        replaceLeadingChars = .Replace(SearchString,ReplaceChar)
    End With
End Function

你当然可以简化:

Function removeLeadingZeros( _
    ByVal SearchString As String) _
As String
    '=removeLeadingZeros(A1)
    With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = "^[0]*"
        removeLeadingZeros = .Replace(SearchString,"")
    End With
End Function

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...