2013-06-22 15 views
5

我试图煽动单元格中的值,但尽管文档说Visual Basic允许+ =运算符,但它只是给我“编译错误:预期:表达式”。VBA中的+ =运算符是否不存在?

Range("CellName").Value += 1 

是何等的突破,但如果我不

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

它工作正常

+1

'VBA'与'VB.net'完全不同 - 'VBA'没有那么严格,但是VB.NET又没有'c#'那么严格, 。我喜欢他们 - 'VBA'似乎有限,但如果你使用Excel,那么'VBA'是应用程序的一部分,因此可以非常强大。 – whytheq

回答

10

不,它不存在VBA。

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

你将不得不使用

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

一个很好的参考,可以发现here

+5

VB.Net绝对会。 –

3

VBA运营商的 “官方” 的列表,可以在VBA帮助在这里找到Basic语言参考 - >运营商 - >算术运算符(online here

也许有争议,但接下来的意见将有救了我大量的时间和头痛:

我会说这是最好忘记一切关于VB和专注于VBA,因为两者是不同的语言。人们不会提及“哦,OCaml,APL,PHP或Fortran有增量运算符”,因为如果范围是VBA,它是无关紧要的。以同样的方式,VB已经或没有的是脱离主题的,通常它只会增加混淆,因为它是相似的。最好使用微软Office的帮助系统,或在网上提供的应用程序的语言参考提供的“本地”的Visual Basic:

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

+1

根据该官方列表,VBA没有+ =运算符。 不要忘了实际回答问题。 – Sheldon

1

这真是烦人。我做了以下功能,使我的生活更容易一点:

' ++ 
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 
相关问题