So erhalten Sie den Wert einer zusammengefügten Zelle eines Excel mit einer Bereichsadresse wie "$ B $ 4: $ B $ 11" in vba
Auch wenn es wirklich nicht ratsam ist, Zellen in Excel zusammenzuführen (verwenden Sie Center Across Selection
, falls erforderlich), ist die Zelle, die den Wert "enthält", diejenige in oben links (zumindest kann man das so ausdrücken).
Daher können Sie den Wert von zusammengeführten Zellen im Bereich _B4:B11
_ auf verschiedene Arten ermitteln:
Range("B4").Value
Range("B4:B11").Cells(1).Value
Range("B4:B11").Cells(1,1).Value
Sie können auch feststellen, dass alle anderen Zellen keinen Wert enthalten. Während des Debuggens können Sie feststellen, dass der Wert empty
ist.
Beachten Sie auch, dass Range("B4:B11").Value
nicht funktioniert (löst einen Ausführungsfehler Nr. 13 aus, wenn Sie versuchen, _Debug.Print
_ es), weil es ein Array zurückgibt.
Josh Brown gab (in einem Kommentar) das, was ich für die beste Antwort halte:
Wenn ich die Grenzen des zusammengeführten Bereichs nicht kenne, bekomme ich den Wert mit
Range("B6").MergeArea.Cells(1,1).Value
Dies ist in VBA hilfreich, wenn Sie zum Beispiel Dateien durchlaufen, in denen möglicherweise Zellen unbekannter Bereiche zusammengefügt wurden. Daher können Sie mit dieser Methode viel allgemeiner vorgehen. Danke Josh!
Dies kann in 2 Schritten erfolgen:
Nennen Sie zuerst den Bereich der verbundenen Zellen. Markieren Sie die verbundene Zelle und gehen Sie dann in die Multifunktionsleiste: Formulas Tab --> Define Name;
Stellen Sie sicher, dass der Name keine Leerzeichen enthält. Beispiel: defined_Name
. Gehen Sie zu der gewünschten Zelle, in der Sie die Ausgabe/das Ergebnis sehen möchten. Geben Sie in diese Zelle Folgendes ein: =defined_Name
.
Drücken Sie die Eingabetaste, da Sie fertig sind.