Auswählen einer bestimmten Zelle in einem Makro (Microsoft Excel)
Wenn Sie Makros verwenden, um auf Daten in Arbeitsblättern zuzugreifen oder diese zu ändern, verlassen Sie sich meistens auf Bereiche. Dadurch entfällt die Notwendigkeit, tatsächlich Zellen im Makro auszuwählen. Trotzdem möchten Sie möglicherweise (aus welchem Grund auch immer) tatsächlich die Zellen auswählen, mit denen Sie arbeiten möchten. Wenn sich die Zelle, die Sie auswählen möchten, in einer anderen Arbeitsmappe befindet, wird die Aufgabe etwas schwieriger. Betrachten Sie beispielsweise die folgenden zwei Codezeilen:
Sub CellSelect1() Workbooks("pwd.xls").Sheets("Sheet3").Select ActiveSheet.Range("A18").Select End Sub
Sie könnten denken, dass dieses Makro Sheet3! A18 in der Arbeitsmappe pwd.xls auswählt. Mit einigen Einschränkungen. Wenn Sie mehr als eine Arbeitsmappe geöffnet haben, führt dieses Makro zu einem Fehler, wenn pwd.xls nicht die derzeit aktive Arbeitsmappe ist. Dies tritt auch dann auf, wenn pwd.xls bereits geöffnet, aber einfach nicht ausgewählt ist.
Das gleiche Verhalten besteht auch dann, wenn Sie den Auswahlcode auf eine einzelne Zeile reduzieren:
Sub CellSelect2() Workbooks("pwd.xls").Sheets("Sheet3").Range("A18").Select End Sub
Sie erhalten weiterhin den Fehler, außer wenn pwd.xls die aktive Arbeitsmappe ist. Die Lösung besteht darin, die Art und Weise, wie Sie den Sprung ausführen, vollständig zu ändern. Verwenden Sie anstelle der Select-Methode die Goto-Methode und geben Sie eine Zieladresse für die Methode an:
Sub CellSelect3() Application.Goto _ Reference:=Workbooks("pwd.xls").Sheets("Sheet3").[A18] End Sub
Dieser Code funktioniert nur, wenn pwd.xls bereits geöffnet ist, es muss sich jedoch nicht um die aktuell aktive Arbeitsmappe handeln. Wenn Sie möchten, dass die Zielarbeitsmappe so gescrollt wird, dass sich die angegebene Zelle in der oberen linken Ecke Ihrer Anzeige befindet, können Sie das Scroll-Attribut wie hier angegeben als True angeben:
Sub CellSelect4() Application.Goto _ Reference:=Workbooks("pwd.xls").Sheets("Sheet3").[A18] _ Scroll:=True End Sub
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (11947) gilt für Microsoft Excel 2007, 2010, 2013 und 2016.
Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: