Vba 左功能不工作

Vba Left Function not working

我试图删除字符串的最后一个字符,因为我用一个循环填充字符串,该循环会在添加每个新字符串后自动添加一个“,”,例如:

Do Until EOF(1)
    ...
    (get string)
    ...
    Ref = Ref + String
    Ref = Ref + ","
Loop
Ref = Left(Ref, Len(Ref) - 1)            (Delete last "," of ref)

尝试 运行 时,我在 LEFT 函数上遇到 "Wrong number of arguments or invalid property assignment" 错误。

我已尝试研究此错误,但我唯一能找到的是关于工具引用丢失的问题,但据我所知它们并没有。 我找到的线程都是 vba 的 excel,这里不是这种情况,这是反射工作区中脚本 运行ning 的代码。

是否有另一种删除字符串最后一个字符的方法?还是有什么错误导致了这个错误?我似乎无法弄清楚这一点。

感谢您的宝贵时间。

与其做错事然后试图挽回,不如从一开始就防止错误发生?

发现循环的第一个 运行 比最后一个要容易得多:

Dim first as Boolean
first = True
Do Until EOF(1)
  ...
  (get string)
  ...
  If first Then
    first = False
  Else
    Ref = Ref + ","
  End If
  Ref = Ref + String
Loop

不确定为什么 left 函数不起作用,这是正确的语法,假设 Ref 实际上是一个字符串。我怀疑您没有提供真实代码这一事实向我们隐瞒了原因。

请记住,该错误消息中有 两个 子句:

Wrong number of arguments OR invalid property assignment.

This page 详细说明了可能的原因。

在任何情况下,只做类似(类似于您自己的伪代码)的事情会更容易:

sep = ""
ref = ""
do until eof(1)
    string = getString()
    ref = ref + sep + string
    sep = ","
loop

换句话说,先创建正确的字符串,而不是事后尝试修复它。