Excel Workbook öffnen: Object variable or With block variable not set

21/11/2007 - 09:25 von Mirco Wilhelm | Report spam
Moin,

ich hab hier einen Fehler drin, der sich mir nicht so ganz erschließt.

Ich versuche eine Exceldatei zu öffnen und bekomme direkt nach dem Öffnen ne
Error Message.

"Object variable or With block variable not set"


Private Sub ImportQaButton_Click()
On Error GoTo AbortSub

Dim wkbAllAssetWorkbook As Workbook
Dim wksAllAssetWorksheet As Worksheet

Dim strTargetWorksheetName As String
Dim strSourceWorksheetName As String
Dim strSourceColumn As String
Dim varAllAssetWorkbookName As Variant
Dim bolDing As Boolean

Dim fd As FileDialog

strTargetWorksheet = ThisWorkbook.Worksheets("QA Form").Name

Set fd = Application.FileDialog(msoFileDialogFilePicker)

With fd
If .Show = -1 Then
For Each varAllAssetWorkbookName In .SelectedItems

wkbAllAssetWorkbook =
Application.Workbooks.Open(varAllAssetWorkbookName, ReadOnly:=True)

bolDing = CopyColumns(wkbAllAssetWorkbook,
strSourceWorksheetName, strTargetWorksheetName, strSourceColumn)

Next varAllAssetWorkbookName
Else
'The user pressed Cancel.
GoTo EndSub
End If
End With

EndSub:
Exit Sub
AbortSub:
MsgBox ("Oops! Excel has made a Booboo: " & vbNewLine & Err.Description)
End Sub


Laut den Debug Markern entsteht der Fehler genau in der leeren Zeile
zwischen Application.Workbook.Open und dem CopyColumns Aufruf.
 

Lesen sie die antworten

#1 Melanie Breden
21/11/2007 - 10:05 | Warnen spam
Hallo Mirco,

"Mirco Wilhelm" schrieb:
Ich versuche eine Exceldatei zu öffnen und bekomme direkt nach dem Öffnen ne Error Message.

"Object variable or With block variable not set"

Laut den Debug Markern entsteht der Fehler genau in der leeren Zeile zwischen
Application.Workbook.Open und dem CopyColumns Aufruf.

wkbAllAssetWorkbook = Application.Workbooks.Open(varAllAssetWorkbookName,
ReadOnly:=True)



die Zuweisung einer Objektvariablen muss über die Set Anweisung erfolgen.
Versuchs mal so (ungetestet):

Application.Workbooks.Open(varAllAssetWorkbookName, ReadOnly:=True)
Set wkbAllAssetWorkbook = ActiveWorkbook

oder

Set wkbAllAssetWorkbook = _
Application.Workbooks.Open(varAllAssetWorkbookName, ReadOnly:=True)


Mit freundlichen Grüssen
Melanie Breden

- Microsoft MVP für Excel -
www.melanie-breden.de

Ähnliche fragen