programing

+= 연산자가 VBA에 존재하지 않습니까?

muds 2023. 8. 29. 21:00
반응형

+= 연산자가 VBA에 존재하지 않습니까?

셀의 값을 증가시키려고 하지만 Visual Basic에서 += 연산자를 허용한다는 문서에도 불구하고 "Compile error: Expected: expression"만 표시됩니다.

Range("CellName").Value += 1

그게 고장난 거야, 하지만 내가 만약에

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

잘 작동합니다.

아니요, VBA에는 없습니다.

VB.NET에서 다음 시간이 소요될 수 있음+=(그것에 대해서는 확신할 수 없지만).

를 사용해야 합니다.

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

여기에서 좋은 참조 자료를 찾을 수 있습니다.

VBA 운영자의 "공식" 목록은 VBA 도움말에서 확인할 수 있습니다.

도움말 --> Microsoft Visual Basic 도움말 --> Visual Basic for Applications Language Reference --> Visual Basic Language Reference --> 연산자 --> 산술 연산자(여기서 온라인)

논란의 여지가 있을지도 모르지만, 다음 조언은 저에게 많은 시간과 두통을 덜어주었을 것입니다.

저는 VB에 대한 모든 것을 잊고 VBA에 집중하는 것이 좋다고 말하고 싶습니다. 둘은 다른 언어이기 때문입니다.사람들은 "오, OCaml, APL, PHP 또는 Fortran에는 증분 연산자가 있습니다"라고 언급하지 않습니다. 범위가 VBA이면 주제에서 벗어납니다.마찬가지로, VB가 가지고 있는 것과 가지고 있지 않은 것은 주제에서 벗어나 있으며, 일반적으로 유사하기 때문에 혼란만 가중시킵니다.MS-Office에서 제공하는 "로컬" Visual Basic for Applications Language Reference를 도움말 시스템에서 제공하거나 온라인으로 사용하는 것이 좋습니다.

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

정말 화가 나.저는 제 삶을 조금 더 편하게 하기 위해 다음과 같은 기능들을 만들었습니다.

' ++
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

아니요. 숫자에 대한 정보는 없습니다. 예를 들어 http://msdn.microsoft.com/de-de/library/215yacb6%28v=vs.80%29.aspx / http://msdn.microsoft.com/en-us/library/cey92b0t.aspx 을 참조.

언급URL : https://stackoverflow.com/questions/17256153/does-the-operator-just-not-exist-in-vba

반응형