2016-07-25 19 views
1

ich diesen Code haben, eine Datei zu öffnen versucht:Öffnen einer Datei in VBA

Dim wbTemplate as Workbook 
Dim template as String 

template = ThisWorkbook.Path & "\sample.xlsx" 
Set wbTemplate = Worbooks.Open(template) 

Ich habe auch versucht:

Set wbTemplate = Worbooks.Open(filename:=template) 

aber beide funktioniert nicht. Die aktive Arbeitsmappe und die Datei, die ich öffnen möchte, haben übrigens das gleiche Verzeichnis. Irgendwelche Ideen? Vielen Dank!

+0

Was passiert, wenn Sie diesen Code ausführen? –

+0

@TimWilliams Es tut mir leid, dass ich vergessen habe, den Fehler zu erwähnen. Es wird ein Fehler ** Objekt erforderlich ** zurückgegeben. – ramedju

+7

Sie haben Worbooks - aber es sollte 'Workbooks' sein. Ist das nur ein Tippfehler? –

Antwort

0

Dies ist, was ich benutze,

Dim FileName As String 

FileName = ActiveWorkbook.Path & "\CRMS.csv" 
Workbooks.Open (FileName) 
+0

Ich habe das auch versucht, aber ich möchte eine Variable, um die Datei handle. – ramedju

+0

@ramedju die Frage ist: Funktioniert das? Können Sie die Datei öffnen, aber beim Öffnen eine Variable setzen, wird der Fehler behoben? –

+0

@DirkReichel Das funktioniert auch nicht. Es hat den gleichen Fehler. – ramedju

0

Try .Add statt .Open zu verwenden:

Dim fName As String 

fName = "YourPath\Sheetname.xlsx" 
Workbooks.Add (fName) 

oder:

Set NewBook = Workbooks.Add(fName) 

Bis jetzt funktioniert es immer mich. Manchmal schlägt die Open-Methode aus verschiedenen Gründen fehl (Zugriffsrecht auf Ordner, geschützte Arbeitsmappe usw.).

+0

Einige Rückmeldungen wären nett! Vielen Dank. – Doug

1

@RobinMackenzie entdeckte es.

Aber man kann diese Art von Verwirrung vermeiden und Option Explicit

unter Verwendung von irreführenden Fehlermeldungen loszuwerden

als Beispiel Ihr Szenario verwenden, wenn Sie Option Expilict verwenden, wird der VBE das Wort markiert worbooks nur, wenn Sie ausführen versuchen der Code und in der irre führt enter image description here

auch die Fehlermeldung ist genauer: Variable not defined

Ohne Option Explicit, VBE die ganze Reihe beleuchtet und wirft einen irreführenden Fehler (correc t aber irreführend): Object required

enter image description here

Hier lesen Sie mehr: https://blogs.msdn.microsoft.com/developingfordynamicsgp/2009/08/06/what-does-option-explicit-do-in-vba/

Verwandte Themen