web-dev-qa-db-de.com

Rufen Sie den Wert einer zusammengefügten Zelle eines Excel von der Zellenadresse in vba ab

So erhalten Sie den Wert einer zusammengefügten Zelle eines Excel mit einer Bereichsadresse wie "$ B $ 4: $ B $ 11" in vba

22
1355

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.

37
JMax

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!

25
todd w

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. 

0