Hallo
Ich habe ein Makro verwendet, das von einem anderen Benutzer gepostet wurde.
Ich habe schnell einen Fehler und gebe zu, dass ich kein Makrospezialist bin. Das Programm stürzt mit einem Run-Tume-Fehler 91 (Objekt Variable mit nicht gesetzter Blockvariable) in der Set-Anweisung swBOMFeature = swBOMAnnotation.BomFeature in Fettdruck ab
Können Sie mir sagen, was ich falsch mache und wie ich mein Problem lösen kann?
Vielen Dank im Voraus
Sub main()
Dim xlApp As Excel.Application
Legen Sie xlApp = Neue Excel.Anwendung fest
Dim wbk As Excel.Workbook
Dim sht As Excel.Arbeitsblatt
Mit xlApp
. Sichtbar = Wahr
Legen Sie wbk = fest. Arbeitsmappen.Hinzufügen
Setze sht = wbk. ActiveSheet (Englisch)
Enden mit
Dim swApp als SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swBOMAnnotation As SldWorks.BomTableAnnotation
Dim swBOMFeature As SldWorks.BomFeature
Dim boolstatus als boolescher Wert
BomType so lange dimmen
Konfiguration als Zeichenfolge dimmen
Dim TemplateName als Zeichenfolge
Dim TableTemplate als Zeichenfolge
Legen Sie swApp = Application.SldWorks fest
Festlegen von swModel = swApp.ActiveDoc
Legen Sie swModelDocExt = swModel.Extension fest
TemplateName = "C:\Benutzer\sal1chl\Desktop\test_nomenclature.sldbomtbt"
Stücklistentyp = swBomType_TopLevelOnly
Set swBOMAnnotation = swModelDocExt.InsertBomTable3(Vorlagenname, 0, 0, BomType, Configuration, False, swNumberingType_Detailed, True)
Set swBOMFeature = swBOMAnnotation.BomFeature
swModel.ForceRebuild3 Wahr
NumCol so lange dimmen
Dim NumRow so lange
Dimmen Sie so lange
Sun J So Lang
NumCol = swBOMAnnotation.ColumnCount
AnzahlZeile = swBOMAnnotation.ZeilenAnzahl
Für I = 0 bis NumRow
Für J = 0 TB NumCol
Sht. Zellen (I + 1, J + 1). Wert = swBOMAnnotation.Text(I, J)
Weiter J
Weiter I
boolstatus = swModelDocExt.SelectByID2(swBOMFeature.GetFeature.Description, "BOMFEATURE", 0, 0, 0, Wahr, 0, Nichts, 0)
swModel.EditDelete
swModel.ForceRebuild3 Wahr
Dim-Konfiguration als SldWorks.Configuration
Dim cusPropMgr As SldWorks.CustomPropertyManager
Dim lRetVal so lange
ValOut als String dimmen
Dim ResolvedValOut als Zeichenfolge
Dim wasResolved As Boolean
Dim nNbrProps so lange
Dim vPropNames als Variante
Dim vPropTypes als Variante
Dim vPropValues als Variante
Dimmen aufgelöst als Variante
Dim custPropType So lange
Dim K so lange
Dim NameProperty als Zeichenfolge
Set cusPropMgr = swModelDocExt.CustomPropertyManager("")
nNbrProps = cusPropMgr.Anzahl
vPropNames = cusPropMgr.GetNames
Für K = 0 bis nNbrProps - 1
cusPropMgr.Get2 vPropNames(K), ValOut, AufgelöstValOut
custPropType = cusPropMgr.GetType2(vPropNames(K))
Wenn vPropNames(K) = "CARTOONIST" dann
PropertyName = AufgelöstValOut
Ende, wenn
Weiter K
Pfad als Zeichenfolge dimmen
path = About("USERPROFILE") & "\Desktop\" & swModel.GetTitle & "-" & PropertyName & ".xls"
Mit xlApp
WBK. Pfad "Speichern unter"
WBK. Schließen
. Verlassen
Enden mit
Ende Sub