Nützliche Range-Objekteigenschaften für Excel VBA, die jeder kennen sollte

Nützliche Range-Objekteigenschaften für Excel VBA, die jeder kennen sollte

Ein Range-Objekt hat Dutzende von Eigenschaften. Sie können die nächsten 12 Monate nonstop VBA-Programme schreiben und nie alle verwenden. Hier erhalten Sie einen kurzen Überblick über einige der am häufigsten verwendeten Excel-VBA-Bereichseigenschaften. Ausführliche Informationen finden Sie im Hilfesystem der VBE. (Schauen Sie sich diese zusätzlichen Ressourcen an, um Hilfe zu Excel VBA zu erhalten .)

Einige Excel-VBA-Bereichseigenschaften sind schreibgeschützte Eigenschaften, was bedeutet, dass Ihr Code ihre Werte anzeigen, aber nicht ändern kann („Schauen, aber nicht berühren“). Jedes Excel VBA Range-Objekt verfügt beispielsweise über eine Address-Eigenschaft, die die Adresse des Bereichs enthält. Sie können auf diese schreibgeschützte Eigenschaft zugreifen, sie jedoch nicht ändern – was durchaus sinnvoll ist, wenn Sie darüber nachdenken.

Übrigens handelt es sich bei den folgenden Beispielen in der Regel um Anweisungen und nicht um vollständige Prozeduren. Wenn Sie eines dieser Verfahren ausprobieren möchten (und dies sollten), erstellen Sie dazu eine Sub-Prozedur. Außerdem funktionieren viele dieser VBA-Anweisungen nur dann richtig, wenn ein Arbeitsblatt das aktive Blatt ist.

Excel VBA: Die Value-Eigenschaft

Die Value-Eigenschaft stellt den in einer Zelle enthaltenen Wert dar. Es handelt sich um eine Read-Write-Eigenschaft, sodass Ihr VBA-Code den Wert entweder lesen oder ändern kann.

Die folgende Anweisung zeigt ein Meldungsfeld an, das den Wert in Zelle A1 auf Sheet1 anzeigt:

MsgBox Worksheets("Sheet1").Range("A1").Value

Es liegt auf der Hand, dass Sie die Value-Eigenschaft nur für ein einzelliges Range-Objekt lesen können. Die folgende Anweisung generiert beispielsweise einen Fehler:

MsgBox Worksheets("Sheet1").Range("A1:C3").Value

Sie können jedoch die Value-Eigenschaft für einen Bereich beliebiger Größe ändern. Die folgende Anweisung trägt die Zahl 123 in jede Zelle eines Bereichs ein:

Worksheets("Sheet1").Range("A1:C3").Value = 123

Value ist die Standardeigenschaft für ein Excel-VBA-Bereichsobjekt. Mit anderen Worten, wenn Sie eine Eigenschaft für einen Bereich weglassen, verwendet Excel dessen Value-Eigenschaft. Die folgenden Anweisungen geben beide einen Wert von 75 in Zelle A1 des aktiven Arbeitsblatts ein:

Bereich("A1").Wert = 75
Bereich("A1") = 75

Excel VBA: Die Text-Eigenschaft

Die Text-Eigenschaft gibt eine Zeichenfolge zurück, die den Text darstellt, wie er in einer Zelle angezeigt wird – den formatierten Wert. Die Text-Eigenschaft ist schreibgeschützt. Angenommen, Zelle A1 enthält den Wert 12,3 und ist so formatiert, dass sie zwei Dezimalstellen und ein Dollarzeichen (12,30 $) anzeigt. Die folgende Anweisung zeigt ein Meldungsfeld mit 12,30 USD an:

MsgBox Worksheets("Sheet1").Range("A1").Text

Aber die nächste Anweisung zeigt eine Meldungsbox mit 12.3 an:

MsgBox Worksheets("Sheet1").Range("A1").Value

Wenn die Zelle eine Formel enthält, gibt die Text-Eigenschaft das Ergebnis der Formel zurück. Wenn eine Zelle Text enthält, geben die Text-Eigenschaft und die Value-Eigenschaft immer dasselbe zurück, da Text (im Gegensatz zu einer Zahl) nicht so formatiert werden kann, dass er anders angezeigt wird.

Excel VBA: Die Count-Eigenschaft

Die Count-Eigenschaft gibt die Anzahl der Zellen in einem Bereich zurück. Es zählt alle Zellen, nicht nur die nicht leeren Zellen. Count ist eine schreibgeschützte Eigenschaft, wie Sie es erwarten würden. Die folgende Anweisung greift auf die Count-Eigenschaft eines Bereichs zu und zeigt das Ergebnis (9) in einem Meldungsfeld an:

MsgBox Range("A1:C3").Count

Excel VBA: Die Spalten- und Zeileneigenschaften

Die Column-Eigenschaft gibt die Spaltennummer eines Einzelzellenbereichs zurück. Ihr Sidekick, die Row-Eigenschaft, gibt die Zeilennummer eines einzelligen Bereichs zurück. Beide sind schreibgeschützte Eigenschaften. Die folgende Anweisung zeigt beispielsweise 6 an, da sich Zelle F3 in der sechsten Spalte befindet:

MsgBox Sheets("Sheet1").Range("F3").Column

Der nächste Ausdruck zeigt 3 an, da sich Zelle F3 in der dritten Zeile befindet:

MsgBox Sheets("Sheet1").Range("F3").Row

Wenn das Excel VBA Range-Objekt aus mehr als einer Zelle besteht, gibt die Column-Eigenschaft die Spaltennummer der ersten Spalte im Bereich zurück, und die Row-Eigenschaft gibt die Zeilennummer der ersten Zeile im Bereich zurück.

Verwechseln Sie die Eigenschaften Column und Row nicht mit den Eigenschaften Columns und Rows. Die Eigenschaften Column und Row geben einen einzelnen Wert zurück. Die Eigenschaften Columns und Rows hingegen geben ein Range-Objekt zurück. Was für ein Unterschied ein „s“ macht.

Excel VBA: Die Adresseigenschaft

Address, eine schreibgeschützte Eigenschaft, zeigt die Zelladresse für ein Range-Objekt als absoluten Verweis an (ein Dollarzeichen vor dem Spaltenbuchstaben und vor der Zeilennummer). Die folgende Anweisung zeigt das unten gezeigte Meldungsfeld an:

MsgBox Range(Cells(1, 1), Cells(5, 5)).Adresse

Nützliche Range-Objekteigenschaften für Excel VBA, die jeder kennen sollte

Dieses Meldungsfeld zeigt die Address-Eigenschaft eines 5-mal-5-Bereichs an.

Excel VBA: Die HasFormula-Eigenschaft

The HasFormula property (which is read-only) returns True if the single-cell range contains a formula. It returns False if the cell contains something other than a formula (or is empty). If the range consists of more than one cell, VBA returns True only if all cells in the range contain a formula or False if all cells in the range don’t have a formula. The property returns Null if the range contains a mixture of formulas and nonformulas. Null is kind of a no-man’s land: The answer is neither True nor False, and any cell in the range may or may not have a formula.

You need to be careful when you work with properties that can return Null. More specifically, the only data type that can deal with Null is Variant.

For example, assume that cell A1 contains a value and cell A2 contains a formula. The following statements generate an error because the range doesn’t consist of all formulas or all nonformulas:

Dim FormulaTest As Boolean
FormulaTest = Range("A1:A2").HasFormula

The Boolean data type can handle only True or False. Null causes Excel to complain and display an error message. To fix this type of situation, the best thing to do is make sure that the FormulaTest variable is declared as a Variant rather than as a Boolean. The following example uses VBA’s handy TypeName function (along with an If-Then-Else construct) to determine the data type of the FormulaTest variable. If the range has a mixture of formulas and nonformulas, the message box displays Mixed! Otherwise, it displays True or False.

Sub CheckForFormulas()
  Dim FormulaTest As Variant
  FormulaTest = Range("A1:A2").HasFormula
  If TypeName(FormulaTest) = "Null" Then
    MsgBox "Mixed!"
  Else
    MsgBox FormulaTest
  End If
End Sub

Excel VBA: The Font property

A property can return an object. The Font property of an Excel VBA Range object is another example of that concept at work. The Font property returns a Font object.

A Font object, as you may expect, has many accessible properties. To change some aspect of a range’s font, you must first access the range’s Font object and then manipulate the properties of that object. This may be confusing, but perhaps this example will help.

The following statement uses the Font property of the Range object to return a Font object. Then the Bold property of the Font object is set to True. In plain English, this statement makes the cell display in boldface:

Range("A1").Font.Bold = True

Truth is, you don’t really need to know that you’re working with a special Font object that’s contained in an Excel VBA Range object. As long as you use the proper syntax, it works just fine. Often, recording your actions with the macro recorder tells you everything you need to know about the proper syntax.

Excel VBA: The Interior property

Here’s yet another example of a property that returns an object. A Range object’s Interior property returns an Interior object (strange name, but that’s what it’s called). This type of object referencing works the same way as the Font property.

For example, the following statement changes the Color property of the Interior object contained in the Range object:

Range("A1").Interior.Color = 8421504

Mit anderen Worten, diese Anweisung ändert den Hintergrund der Zelle in ein Mittelgrau. Was ist das? Sie wussten nicht, dass 8421504 mittelgrau ist? Einige Einblicke in die wunderbare Farbwelt von Excel finden Sie in der nahegelegenen Seitenleiste „Eine schnelle und schmutzige Farbgrundierung“.

Excel VBA: Die Formel-Eigenschaft

Die Formula-Eigenschaft stellt die Formel in einer Zelle dar. Dies ist eine Eigenschaft mit Lese-/Schreibzugriff, sodass Sie darauf zugreifen können, um entweder die Formel in einer Zelle anzuzeigen oder eine Formel in eine Zelle einzufügen. Die folgende Anweisung gibt beispielsweise eine Summenformel in Zelle A13 ein:

Range("A13").Formula = "=SUMME(A1:A12)"

Beachten Sie, dass die Formel eine Textzeichenfolge ist und in Anführungszeichen eingeschlossen ist. Beachten Sie auch, dass die Formel wie alle Formeln mit einem Gleichheitszeichen beginnt.

Wenn die Formel selbst Anführungszeichen enthält, wird es etwas knifflig. Angenommen, Sie möchten diese Formel mithilfe von VBA einfügen:

=SUMME(A1:A12)&" Speicher"

Diese Formel zeigt einen Wert gefolgt von dem Wort Stores an . Damit diese Formel akzeptabel ist, müssen Sie jedes Anführungszeichen in der Formel durch zwei Anführungszeichen ersetzen. Andernfalls wird VBA verwirrt und behauptet, dass ein Syntaxfehler vorliegt (weil es einen gibt!). Hier ist also eine Anweisung, die eine Formel eingibt, die Anführungszeichen enthält:

Range("A13").Formula = "=SUMME(A1:A12)&"" Speichert"""

Übrigens können Sie auch dann auf die Formula-Eigenschaft einer Zelle zugreifen, wenn die Zelle keine Formel enthält. Wenn eine Zelle keine Formel enthält, gibt die Formula-Eigenschaft dasselbe zurück wie ihre Value-Eigenschaft.

Wenn Sie wissen müssen, ob eine Zelle eine Formel enthält, verwenden Sie die HasFormula-Eigenschaft.

Beachten Sie, dass VBA US-Englisch „spricht“. Das bedeutet, dass Sie zum Einfügen einer Formel in eine Zelle die US-Syntax verwenden müssen. Wenn Sie eine nicht-englische Version von Excel verwenden, lesen Sie die FormulaLocal-Eigenschaft im Hilfesystem.

Excel VBA: Die NumberFormat-Eigenschaft

Die NumberFormat-Eigenschaft stellt das Zahlenformat (ausgedrückt als Textzeichenfolge) des Range-Objekts dar. Dies ist eine Read-Write-Eigenschaft, sodass Ihr VBA-Code entweder das Zahlenformat untersuchen oder ändern kann. Die folgende Anweisung ändert das Zahlenformat von Spalte A in einen Prozentsatz mit zwei Dezimalstellen:

Columns("A:A").NumberFormat = "0.00%"

Befolgen Sie diese Schritte, um eine Liste anderer Zahlenformate anzuzeigen (besser noch, schalten Sie den Makrorekorder ein, während Sie dies tun):

Aktivieren Sie ein Arbeitsblatt.

Drücken Sie Strg+1, um auf das Dialogfeld Zellen formatieren zuzugreifen.

Klicken Sie auf die Registerkarte Nummer.

Wählen Sie die Kategorie Benutzerdefiniert aus, um einige zusätzliche Zahlenformatzeichenfolgen anzuzeigen und anzuwenden.


Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet ist eine dynamische Arbeitsplattform, mit der Sie Projekte verwalten, Arbeitsabläufe erstellen und mit Ihrem Team zusammenarbeiten können.

SharePoint

SharePoint

SharePoint ist ein webbasiertes Kollaborationssystem, das eine Vielzahl von Workflow-Anwendungen, „Listen“-Datenbanken und anderen Webkomponenten sowie Sicherheitsfunktionen verwendet, um die Zusammenarbeit von Unternehmensgruppen zu steuern.

Ewiger Kalender 1.0.38/1.0.36

Ewiger Kalender 1.0.38/1.0.36

Van Nien Calendar ist eine Kalenderanzeigeanwendung auf Ihrem Telefon, die Ihnen hilft, schnell das Monddatum auf Ihrem Telefon zu sehen und so Ihre wichtige Arbeit zu ordnen.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook ist eine Geschäfts- und Produktivitätsanwendung, die von der Microsoft Corporation entwickelt wurde.

ClickUp

ClickUp

ClickUp ist eine der am höchsten bewerteten Produktivitätsplattformen für jedes Unternehmen. Große Unternehmen wie Google, Booking.com, San Diego Padres und Uber nutzen ClickUp, um die Produktivität am Arbeitsplatz zu steigern.

PDF-XChange Viewer 2.5.322.10

PDF-XChange Viewer 2.5.322.10

PDF ist zu einem häufig verwendeten Format zum Lesen, Erstellen und Senden von Textdokumenten geworden. Im Gegenzug hat die Zahl der für diese Art der Dokumentation eingesetzten Programme zugenommen. PDF-XChange Viewer gehört zu einer wachsenden Zahl von PDF-Viewern.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice bietet eine vollständige Suite von Office-Anwendungen, die mit Microsoft 365 konkurrieren können, insbesondere in Excel, PowerPoint und Word. Es ermöglicht Ihnen eine effektivere Verwaltung Ihrer Projekte und unterstützt mehrere Dateiformate.

Laden Sie iTaxviewer 1.8.7 herunter

Laden Sie iTaxviewer 1.8.7 herunter

Die iTaxViewer-Software ist heute die beliebteste Software zum Lesen von XML-Dateien. Bei dieser Software handelt es sich um eine Anwendung zum Lesen elektronischer Steuererklärungen im XML-Format des General Department of Taxation.

Nitro PDF Reader

Nitro PDF Reader

Nitro PDF Reader ist ein praktischer PDF-Editor, der alle grundlegenden Aufgaben abdeckt, die die meisten Menschen täglich mit PDF-Dokumenten ausführen.

Foxit Reader 12

Foxit Reader 12

Foxit Reader ist in erster Linie ein PDF-Reader und ermöglicht Ihnen außerdem, PDF-Dateien zu erstellen, sie zu signieren, zu bearbeiten und Anmerkungen hinzuzufügen. Es funktioniert auf Betriebssystemen, es gibt Plugins für verschiedene Programme aus dem Microsoft Office-Paket.