12

我正在尝试在左侧填充一个带有 0 的字符串。输出字符串的长度应为 7。这是我的代码:

inputstr = "38"
in = string(7 - Len(inputStr),0) & inputStr
msgbox in

我收到错误预期声明请帮助我谢谢

4

4 回答 4

24

以下代码将运行速度提高 5%:

inputStr = "38"
result = Right("0000000" & inputStr, 7)

msgbox result
于 2014-10-23T15:25:54.410 回答
17

此函数将使用给定的填充字符将输入值左填充到给定的字符数,而不截断输入值:

Function LPad(s, l, c)
  Dim n : n = 0
  If l > Len(s) Then n = l - Len(s)
  LPad = String(n, c) & s
End Function

输出:

>>> WScript.Echo LPad(12345, 7, "0")
0012345
>>> WScript.Echo LPad(12345, 3, "0")
12345
于 2013-08-09T18:09:06.747 回答
6

in是保留字,因此不能用作变量名,您必须传递字符串"0"而不是整数0,因此:

inputStr = "38"
result = string(7 - Len(inputStr), "0") & inputStr

msgbox result
于 2013-08-09T16:56:12.463 回答
1

功能:

Private Function LPad (str, pad, length)
    LPad = String(length - Len(str), pad) & str
End Function

利用:

LPad(12345, "0", 7)
于 2018-04-16T05:28:37.873 回答