Unsere Webseiten benötigen JavaScript. Dies scheint in Ihrem Browser jedoch deaktiviert zu sein.

News & Tipps zu Microsoft Access

Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.

Beitrag aus SmartTools Access Weekly

Excel-Tabelle per VBA ansteuern

Access 365 2024 2021 2019 2016 2013 2010

FRAGE Ich nutze Office Automation für den Export von Daten nach Excel. Bei der Ausgabe in eine Arbeitsmappe wird per "ActiveSheet" immer "Tabelle1" adressiert. Ich möchte aber ein bestimmtes Tabellenblatt wählen. Welche Anweisungen wären dazu nötig? Bei einigen meiner Excel-User wird Excel ohne Standardtabellen, also quasi "leer" geöffnet. Wie kann ich das erkennen und in solchen Fällen ein Tabellenblatt anlegen und benennen?

Diverse Anfragen

ANTWORT Für den Zugriff auf ein bestimmtes Tabellenblatt ändern Sie zu die Anweisung von zum Beispiel

Set objWS = objWB.ActiveSheet

in

Set objWS = objWB.Sheets("NameDesTabellenblattes")

In der Auflistung "Workbook.Sheets" verwaltet Excel alle Tabellenblätter. Ein Zugriff auf ein bestimmtes Tabellenblatt ist entweder über einen numerischen Index von "1" bis "Sheets.Count" oder den Namen des Tabellenblattes wie oben gezeigt möglich.

Um festzustellen, ob ein verwendbares Tabellenblatt vorliegt, nutzen Sie folgende Abfrage:

'Arbeitsmappe vorhanden?
If objExcel.Worksbook.Count = 0 Then 'Nein
  'Neue Arbeitsmappe anlegen
  Set objWB = objExcel.Workbooks.Add()
End if
'Tabellenblatt in Arbeitsmappe vorhanden?
If objExcel.ActiveWorkbook.Sheets.Count = 0 Then 'Nein
  'Neues Tabellenblatt anlegen
  Set objWS = objWB.Sheets.Add
  objWS.Name = "NameDesTabellenblattes"
End If

Über "Workbook.Count" können Sie feststellen, ob eine Arbeitsmappe geöffnet ist und bei Bedarf mit "Workbooks.Add" eine leere Arbeitsmappe öffnen, die dann als "ActiveWorkbook" gesetzt ist. Ob die aktuelle Arbeitsmappe Tabellenblätter enthält, erfahren Sie über "ActiveWorkbook.Sheets.Count" und können bei "0" mit "Sheets.Add" ein Tabellenblatt hinzufügen und es per Zuweisung "Name = ..." wie gewünscht benennen.