Frage VBA Syntaktischer Zucker


Ich benutze VBA in meiner Arbeit jeden Tag, aber ich wusste nicht über Range syntactic Zucker. Ich wusste nur letzten Monat, als ich die MSDN Range-Seite sah. Ich habe versucht, einen Artikel mit diesen Funktionen zu finden, aber ich habe keinen gefunden.

Weiß jemand, ob VBA mehr syntaktischen Zucker als das hat?

Angebot:Range("A4:C100") zu [A4:C100]

oder

Angebot: Range("MY_DATE") zu [MY_DATE]


4
2018-01-28 11:56


Ursprung


Das könnte sich für Sie lohnen: stackoverflow.com/questions/1070863/hidden-features-of-vba - Pillgram


Antworten:


Für Bereiche

Alle machen das Gleiche:

Range(Cells(1, 2), Cells(2, 2)).Select

Range("B1:B2").Select

Dim rngB As Range
Set rngB = Range("B1:B2")
rngB.Select

[B1:B2].Select


Für Zeichenfolgen

Sie haben nicht viele Optionen

Dim strA As String
strA = "hello"

strA = strA + "world" und strA = strA & "world" tue das Gleiche (kaufmännisches Und wird bevorzugt)

strA &= "world" und strA += "world"  nicht funktionieren.


Für Arbeitsblätter

In der Regel können Sie mit dem tatsächlichen Standardblatt mit der Nummer arbeiten und nicht mit dem Namen des Arbeitsblatts:

Worksheets("Name").Activate
Sheets("Name").Activate
'Worksheet "Name" is Sheet1 object
Sheet1.Activate

Für Arbeitsblattformeln / Funktionen

Aus Excellls Antwort zur Vollständigkeit:

Eine weitere syntaktische Abkürzung dient zum Zugreifen auf und Bewerten von Arbeitsblättern   Funktionen. Sie können Klammern verwenden, um eine Formel so zu bewerten, als ob sie aktiviert wäre   das Arbeitsblatt, anstatt eine umständliche VBA aneinander zu reihen   Erklärung.

Sub sugartest()
'long version
MsgBox Application.WorksheetFunction.Average(ActiveSheet.Range("A1:D1"))
'short version
MsgBox [AVERAGE(A1:D1)]
End Sub

6
2018-01-28 13:55



Vielen Dank. Für String-Verkettungen verwende ich meine StringFormat (), die wie C # -Stil funktioniert. github.com/makah/ExcelHelper/blob/master/Helper.bas - Unter Kommentare auf Portugiesisch :-( - Makah
Etwas für Blätter ()? - Makah
@ Makah-Blätter können als das Blatt bezeichnet werden, das sie standardmäßig sind (Sheet #), anstatt Titel, wenn Sie auf das Objekt verweisen. Siehe meine Bearbeitung. - Raystafarian
Sie können einer Array-Variablen auch einen Bereich zuweisen und umgekehrt. - andy holaday


Eine weitere syntaktische Abkürzung dient dem Zugriff auf und der Auswertung von Arbeitsblattfunktionen. Sie können mit eckigen Klammern eine Formel so auswerten, als ob sie im Arbeitsblatt wäre, anstatt eine umständliche VBA-Anweisung aneinander zu reihen.

Sub sugartest()
'long version
MsgBox Application.WorksheetFunction.Average(ActiveSheet.Range("A1:D1"))
'short version
MsgBox [AVERAGE(A1:D1)]
End Sub

6
2018-01-28 21:41



Ich wusste das nicht und es ist FANTASTISCH +1 - Raystafarian
Uuuh, das ist schön! - nixda