+ =运算符在VBA中是否不存在?

时间:2013-06-22 23:05:46

标签: excel vba excel-vba operators

我正在尝试在单元格中创建值,但尽管文档说Visual Basic允许+ =运算符,但它只是给我“编译错误:预期:表达式”。

Range("CellName").Value += 1

是什么打破了,但如果我做了

Range("CellName") = Range("CellName") + 1

工作正常

4 个答案:

答案 0 :(得分:10)

不,它在VBA中不存在。

VB.NET可能需要+=(虽然我甚至不确定)。

你必须使用

Range("CellName").Value = Range("CellName").Value+1

可以找到一个很好的参考here

答案 1 :(得分:3)

VBA帮助的“官方”列表可以在VBA帮助中找到:

帮助 - > Microsoft Visual Basic帮助 - > Visual Basic for Applications语言参考 - > Visual Basic语言参考 - >运营商 - >算术运算符(online here

也许是有争议的,但下一个建议会给我带来很多时间和麻烦:

我认为最好忘记关于VB的所有并关注VBA,因为这两者是不同的语言。人们没有提到“哦,OCaml,APL,PHP或Fortran都有增量运算符”,因为如果范围是VBA,它就是偏离主题的。以同样的方式,VB有或没有偏离主题,通常它只会增加混乱,因为它是相似的。更好地使用MS-Office提供的“本地”Visual Basic for Applications语言参考,由帮助系统提供,或在线提供:

http://msdn.microsoft.com/en-us/library/office/gg264383%28v=office.15%29.aspx

答案 2 :(得分:2)

真的很烦人。我做了以下功能,让我的生活更轻松:

' ++
Function pp(ByRef x, Optional y = 1)
    x = x + y
    pp = x
End Function

' --
Function mm(ByRef x, Optional y = 1)
    x = x - y
    mm = x
End Function

由于您仍然需要输入相同金额,因此无法真正帮助您解决问题:

Range("CellName") = pp(Range("CellName"))

但是对于简单的循环增量,它有帮助:

do while cells(x,1) <> ""
    pp x
loop

答案 3 :(得分:0)