我想有一个快速的单行VBA代码来填充字符串形式的数字,总是有一个3的倍数的长度。例如:
"12“变成"012”
"1234“变成"001234”
"1234567“变成"001234567”
"12345678912345678“变成"012345678912345678”
以此类推。
数字字符串不会有任何小数点或小数点,所以不用担心这一点。
通过在左边添加0,结果字符串的长度应该是3的倍数。
在整个编码过程中,数字字符串应该保持为字符串,不应使用Val等数字函数将其转换为数字,因为原始字符串可能非常长,超过150位,使用数字函数可能会截断或舍入数字,从而产生不希望看到的结果。
我已经想出了以下可能的解决方案,通过检查字符串长度,但我觉得在一(1)个编码语句中有一种更好、更有效的方法来做到这一点。
Result = String((3 - (Len(MyString) Mod 3)) Mod 3, "0") & MyString发布于 2019-07-04 12:40:54
经过几次尝试和您的想法,我使用一个Mod函数得出了以下结论:
MyString = String((Len(MyString) * 2) Mod 3, "0") & MyString一般而言,一般公式为:
MyString = String((Len(MyString) * (Multiples-1) ) Mod Multiples, "0") & MyStringhttps://stackoverflow.com/questions/56876655
复制相似问题