【发布时间】:2021-02-13 09:45:44
【问题描述】:
我使用 LimeSurvey 的答案来验证我在 Excel 中需要的数据。
为了检查我是否有正确的人,他们在调查中输入了 ID 号。
然后,它是这样的:
我读取了一张身份证并从他们的身份证中提取了他们的身份证号码,并使用此代码将其放在单元格“个人: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?
我尝试了在此问答中找到的一些代码,但它们不起作用。
我也尝试了一些自定义格式,但它也没有改变。我想这是因为它是参考而不是手动输入。
【问题讨论】:
-
请尝试:
If left(IDcard, 1) = "0" Then IDcard = Mid(IDcard, 2)。 -
或者像一个公式,假设“M2”有要处理的值:=
=IF(LEFT(M2,1)="0",MID(M2,2,100),M2),使用这个公式所在的单元格(而不是M2)。 -
@FaneDuru 谢谢,第二个工作正常,只有语法错误:“,”必须是“;”让公式起作用。
-
我为标准设置做了它。如果您的区域设置涉及“;”作为列表分隔符,是的,就是这样。但是 VBA 解决方案在所有情况下都以标准方式工作。你也试过了,还是不行?
-
我只是测试了公式方式,我没有使用VBA代码。
标签: excel vba leading-zero limesurvey