Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1360to1364
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Exceltabelle mit Variable definieren

Exceltabelle mit Variable definieren
06.05.2014 14:55:33
Templer
Hallo,
ich versuche mich gerade darin, ein Tabellenblatt mit einer Variablen zu definieren. Das sieht im Moment wie folgt aus:
Dim strTMP As String
Workbooks.Open "C:\test.xlsx"
strTMP = ActiveSheet.Name
und dann die Verwendung mit:
Worksheets(strTMP).Activate
Leider bekomme ich dann eine Laufzeitfehler ´9´: Index außerhalb des gültigen Bereichs.
Was mache ich falsch?
Zur Info: der VBA Code ist nicht in der Datei die aufgerufen wird sondern in einer separaten Datei. Zwischen den Anfangscode und dem Activate sind ein paar Copy und Löschfunktion von anderen Dateien eingebaut.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Exceltabelle mit Variable definieren
06.05.2014 15:22:21
Nepumuk
Hallo,
weil sich Worksheets, ohne Angabe der Mappe, auf die Mappe bezieht in der sich der Code befindet.
Arbeite mit Objektvariablen, das ist in dem Fall sicherer.
Public Sub Test()
    
    Dim objWorkbook As Workbook
    Dim objWorksheet As Worksheet
    
    Set objWorkbook = Workbooks.Open("C:\test.xlsx")
    Set objWorksheet = objWorkbook.ActiveSheet
    
    'Mach irgendwas
    
    objWorkbook.Activate
    objWorksheet.Select
    
    'Mappe schließen mit speichern
    objWorkbook.Close True
    
    Set objWorksheet = Nothing
    Set objWorkbook = Nothing
End Sub

Gruß
Nepumuk

Anzeige
AW: Exceltabelle mit Variable definieren
06.05.2014 15:22:32
Rudi
Hallo,
dann gibt es das Worksheet in der aktiven Mappe nicht.
Arbeite besser mit Objektvariablen.
Dim wksTMP As WorkSheet
Workbooks.Open "C:\test.xlsx"
set wksTMP = ActiveSheet
'weiterer Code
wksTMP.Activate

Gruß
Rudi

AW: Exceltabelle mit Variable definieren
06.05.2014 15:34:25
Daniel
Hi
so wie du programmierst musst du folgendes beachten:
steht der Code in einem allgemeinen Modul, dann suchst Worksheets(strTMP).Activate das Blatt in der gerade aktiven Datei.
steht der Code in einem Tabellenblattmodul oder im Modul "DieseArbeitsmappe", dann sucht dieser Code das Blatt in der Datei, in welcher sich der Code befindet.
besser ist, wenn du hier mit Objekt-Variablen arbeitest:
dim wsTMP as Worksheet
Workbooks.Open "C:\test.xlsx"
Set wsTMP = ActiveSheet
wsTMP.Parent.Activate
wsTMP.Activate
desweitern solltest du beachten, dass du nur im aktiven Workbook ein Tabellenblatt aktiveren kannst.
dh wenn du mit mehrern Dateien arbeitest, musst du erst das Workbook aktivieren bevor du ein Tabellenblatt aktiveren kannst (wobei das aktivieren zu 99% im Code nicht notwendig ist)
Gruß Daniel

Anzeige
AW: Exceltabelle mit Variable definieren
06.05.2014 15:54:16
Rudi
Hallo,
desweitern solltest du beachten, dass du nur im aktiven Workbook ein Tabellenblatt aktiveren kannst.
das stimmt nicht. Activate geht.
aus Mappe 3 heraus gestartet:
Sub aaa()
Dim w As Worksheet
Set w = Workbooks("Mappe4").Sheets(1)
w.Activate
End Sub
w.Select geht allerdings schief.
Gruß
Rudi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige