Problem mit OLE-Objekt

04/03/2008 - 17:19 von Kay Gruhl | Report spam
Hallo

Ich beschàftige mich erst seit ein paar Tagen mit VBA und bin nun auf ein
Problem gestoßen, welches ich nicht verstehe.

Unten ist nur der für das bestehende Problem relevante Code des ganzen
Projekts aufgeführt. Ziel ist eine fehlerfreie Abarbeitung des Codes,
welcher innerhalb von Macro1 steht (natürlich ohne die Kommentarzeichen).
Ich bekomme aber den Laufzeitfehler 438 (Objekt unterstützt diese
Eigenschaft oder Methode nicht).

Wenn ich den Code auf 2 Makros aufteile, erhalte ich das gewünschte
Ergebnis.

Wie bekomme ich das in einem Stück hin?


Sub Makro1()
ActiveSheet.OLEObjects.Add(ClassType:="BarcodeWiz.BarcodeWiz.1", _
Link:=False, DisplayAsIcon:=False).Select
ActiveSheet.OLEObjects("BarCodeWiz1").Height = 57
ActiveSheet.OLEObjects("BarCodeWiz1").Width = 144
ActiveSheet.OLEObjects("BarCodeWiz1").LinkedCell = ActiveCell.Address
'ActiveSheet.BarCodeWiz1.StretchBarcodeText = True
'ActiveSheet.BarCodeWiz1.Symbology = 4
'ActiveSheet.BarCodeWiz1.BarcodeHeight = 800
'ActiveSheet.BarCodeWiz1.NarrowBarWidth = 38
End Sub


Sub Makro2()
ActiveSheet.BarCodeWiz1.StretchBarcodeText = True
ActiveSheet.BarCodeWiz1.Symbology = 4
ActiveSheet.BarCodeWiz1.BarcodeHeight = 800
ActiveSheet.BarCodeWiz1.NarrowBarWidth = 38
End Sub

Kay
 

Lesen sie die antworten

#1 W. Wolf
05/03/2008 - 10:03 | Warnen spam
Hallo Kay
"Kay Gruhl" schrieb

Ich beschàftige mich erst seit ein paar Tagen mit VBA und bin nun auf ein
Problem gestoßen, welches ich nicht verstehe.

Unten ist nur der für das bestehende Problem relevante Code des ganzen
Projekts aufgeführt. Ziel ist eine fehlerfreie Abarbeitung des Codes,
welcher innerhalb von Macro1 steht (natürlich ohne die Kommentarzeichen).
Ich bekomme aber den Laufzeitfehler 438 (Objekt unterstützt diese
Eigenschaft oder Methode nicht).

Wenn ich den Code auf 2 Makros aufteile, erhalte ich das gewünschte
Ergebnis.

Wie bekomme ich das in einem Stück hin?




Ohne das BarCodeWiz-Tool zu kennen
ist eine Aussage schweer. Affallend ist
jedoch dass Du das Objekt unterschiedlich
ansprichst: mal über die OLEObjects-Sammlung,
mal direkt. Versuch doch folgendes:

Sub Makro1()
ActiveSheet.OLEObjects.Add(ClassType:="BarcodeWiz.BarcodeWiz.1", _
Link:=False, DisplayAsIcon:=False).Select
With ActiveSheet.OLEObjects("BarCodeWiz1")
.Height = 57
.Width = 144
.LinkedCell = ActiveCell.Address
.StretchBarcodeText = True
.Symbology = 4
.BarcodeHeight = 800
.NarrowBarWidth = 38
end with
End Sub

die Add-Methode am Anfang ist mir auch suspekt,
vor allem das .Select am Ende. Deshalb hier noch
eine zweite Variante:

Sub Makro1()
dim barwiz as object
set barwiz = ActiveSheet.OLEObjects.Add(ClassType:="BarcodeWiz.BarcodeWiz.1", _
Link:=False, DisplayAsIcon:=False)
With barwiz
.select
.Height = 57
.Width = 144
.LinkedCell = ActiveCell.Address
.StretchBarcodeText = True
.Symbology = 4
.BarcodeHeight = 800
.NarrowBarWidth = 38
end with
End Sub


Gruß
W. Wolf

Sub Makro1()
ActiveSheet.OLEObjects.Add(ClassType:="BarcodeWiz.BarcodeWiz.1", _
Link:=False, DisplayAsIcon:=False).Select
ActiveSheet.OLEObjects("BarCodeWiz1").Height = 57
ActiveSheet.OLEObjects("BarCodeWiz1").Width = 144
ActiveSheet.OLEObjects("BarCodeWiz1").LinkedCell = ActiveCell.Address
'ActiveSheet.BarCodeWiz1.StretchBarcodeText = True
'ActiveSheet.BarCodeWiz1.Symbology = 4
'ActiveSheet.BarCodeWiz1.BarcodeHeight = 800
'ActiveSheet.BarCodeWiz1.NarrowBarWidth = 38
End Sub

Ähnliche fragen