2016-09-07 10 views
0

Ich habe eine wirklich harte Zeit, eine Arbeitsmappe in VBA zu öffnen.VBA Workbooks.Open Typ nicht übereinstimmen

Diese Codezeile gibt mir einen Typkonflikt. path ist ein String und ich bin 100% sicher, es ist gültig und ich bin in der Lage, die mit path ohne Probleme zu tun.

' Compile Error: Invalid qualifier on Workbooks 
Set wbNew = Workbooks(path).Open 

Ich habe versucht, andere Permutationen wie diese, aber ich bekomme Compile Error: Invalid qualifier auf dem Workbooks Objekt selbst. Fehle ich eine Referenz?

' Compile Error: Invalid qualifier on Workbooks 
Workbooks.Open path 

Wie öffne ich eine Arbeitsmappe in VBA?

+0

Ist der Laufzeitfehler * kein Index außerhalb des Bereichs * im ersten Snippet? –

+0

Es ist kein Duplikat, weil der 'Application.'-Teil kein Teil einer SO-Frage ist, die ich finden könnte, vertraue mir, ich habe eine Weile damit verbracht, den zu betrachten, den du verlinkt hast, und es war überhaupt nicht offensichtlich. –

+1

Hätten Sie zufällig eine Variable oder Funktion mit dem Namen 'Arbeitsmappen' im Bereich? Der Name Konflikt würde es erklären. –

Antwort

1
Set wbNew = Workbooks(path).Open 

Die path sollte ein Argument an die Open Verfahren sein; Sie übergeben es als Index in die Application.Workbooks Sammlung - das ist die Sammlung von Arbeitsmappen bereits geöffnet, also path vermutlich würde nicht zu irgendeiner bereits geöffneten Arbeitsmappe entsprechen, daher der Fehler.

So ist die korrekte und voll qualifizierten Aufruf wäre:

Dim wbNew As Excel.Workbook 
Set wbNew = Application.Workbooks.Open(path) 
+0

'Application.Workbooks.Open (Pfad)' omfg, verbrachte ich Stunden googeln und konnte das nicht finden. –

-3

Path = THIS

VERSUCHEN "C: \ Benutzer \ USER \ Desktop \ test.xlsx"

Dim myshell Wie Objekt

Set myshell = Create ("WScript.Shell")

myShell.R un Pfad

+1

Warum nicht _you_ es versuchen und verifizieren, dass es funktioniert? Schließlich sollen Antworten nur geschrieben werden, wenn Sie 100% wissen, dass es korrekt ist. Ich denke, Sie werden von dem Ergebnis überrascht sein ... – byxor

+0

Sorry, ich habe nicht alles eingefügt. Ich werde das nächste Mal nochmal nachsehen. – irvin

+0

Kein Problem. StackOverflow wird einfacher, je mehr Sie es tun. Bald wirst du Vollzeit sein;) – byxor

Verwandte Themen