Pochodzę z pięknego świata Obj C, opartego na języku programowania C, i zakochałem się w szukaniu dziwnych sposobów na zaoszczędzenie przestrzeni. Jednak ja przejrzałem tyle dokumentacji jak mogę i nie mogę znaleźć nic soczyste na VBA, który skróci tę składnię:Czy VBA ma trójskładnikowego operatora?
If boolVar = True Then
'Do something
Else
'Do nothing
End If
W Obj C i naturalnie C, jestem bardzo obeznany z w ten sposób:
boolVar ? "Nope, tis false" : "Yup, tis true"
jest to bardzo podobne do tego, co większość innych langagues użyciu, niektóre mogą używać operatorów logicznych ekstra jak !=
lub ==
ale pozostawia mnie optymistyczne. Być może nie zajrzałam we właściwe miejsca, jeśli tak jest, PROSZĘ daj mi znać gdzie otrzymasz swoją dokumentację.
TLDR, czy możemy skrócić If/Then/Else do jednego wiersza kodu w VBA? Jest to wyjątkowo przydatne, gdy "Do Somethings" to nic innego jak ustawienie pojedynczego parametru dla innej zmiennej lub włączenie/wyłączenie przycisku.
[IIf()] (https://msdn.microsoft.com/en-us/library/office/gg264412 (v = office.15) .aspx) –
VBA nie ma prawdziwego operatora trójskładnikowego. Istnieje funkcja 'IIf' * *, ale dodajesz narzut związany z wywołaniem funkcji, co daje *** zarówno zmniejszoną czytelność, jak i wydajność. – Comintern
Nie jest również zwarty. –