Witam
Użyłem makra zamieszczonego przez innego użytkownika.
Szybko łapię bakcyla i przyznam, że nie jestem specjalistą od makr. Program ulega awarii z błędem Run-Tume 91 (zmienna obiektu ze zmienną blokową nie jest ustawiona) w instrukcji Set swBOMFeature = swBOMAnnotation.BomFeature pogrubioną czcionką
Czy mógłbyś mi powiedzieć, gdzie popełniam błąd i jak rozwiązać mój problem?
Z góry dziękuję
Sub main()
Dim xlApp As Excel.Application
Ustaw xlApp = Nowy Excel.Aplikacja
Dim wbk As Excel.Workbook
Dim sht As Excel.Arkusz roboczy
Z xlApp
. Widoczne = Prawda
Ustaw wbk = . Skoroszyty.Dodaj
Ustaw sht = wbk. Arkusz ActiveSheet
Zakończ się na
Dim swApp jako SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swBOMAnnotation As SldWorks.BomTableAnnotation
Dim swBOMFeature As SldWorks.BomFeature
Dim boolstatus As Boolean
Dim BomType tak długo, jak długo
Przyciemnij konfigurację jako ciąg
Dim TemplateName As Ciąg
Dim TableTemplate As String
Ustaw swApp = Application.SldWorks
Ustaw swModel = swApp.ActiveDoc
Ustaw swModelDocExt = swModel.Extension
TemplateName = "C:\Użytkownicy\sal1chl\Pulpit\test_nomenclature.sldbomtbt"
BomType = swBomType_TopLevelOnly
Ustaw swBOMAnnotation = swModelDocExt.InsertBomTable3(NazwaSzablonu, 0, 0, TypFormularza, Konfiguracja, Fałsz, swNumberingType_Detailed, Prawda)
Ustaw swBOMFeature = swBOMAnnotation.BomFeature
swModel.ForceRebuild3 Prawda
Dim NumCol tak długo
Dim NumRow tak długo
Dim I tak długo
Słońce J Tak długo
LiczbaKolumn = swBOMAnnotation.ColumnCount
NumRow = swBOMAnnotation.RowCount
Dla I = 0 do NumRow
Dla J = 0 TB NumCol
Arkuszy. Komórki(I + 1, J + 1). Wartość = swBOMAnnotation.Text(I, J)
Następny J
Dalej I
boolstatus = swModelDocExt.SelectByID2(swBOMFeature.GetFeature.Description, "BOMFEATURE", 0, 0, 0, Prawda, 0, Nic, 0)
swModel.EditDelete
swModel.ForceRebuild3 Prawda
Przyciemnij konfigurację jako SldWorks.Configuration
Dim cusPropMgr As SldWorks.CustomPropertyManager
Dim lRetVal tak długo
Dim ValOut As String
Dim ResolvedValOut As String
Dim wasResolved As Boolean
Dim nNbrProps tak długo
Dim vPropNames jako wariant
Dim vPropTypes jako wariant
Dim vPropValues jako wariant
Dim rozwiązany jako wariant
Dim custPropType As Long
Dim K tak długo
Dim NameProperty As String
Ustaw cusPropMgr = swModelDocExt.CustomPropertyManager("")
nNbrProps = cusPropMgr.Count
vPropNames = cusPropMgr.GetNames
Dla K = 0 do nNbrProps - 1
cusPropMgr.Get2 vPropNames(K), ValOut, ResolvedValOut
custPropType = cusPropMgr.GetType2(vPropNames(K))
Jeśli vPropNames(K) = "RYSOWNIK" Następnie
PropertyName = ResolvedValOut
Zakończ jeżeli:
Następny k
Przyciemnij ścieżkę jako ciąg
path = About("USERPROFILE") & "\Desktop\" & swModel.GetTitle & "-" & PropertyName & ".xls"
Z xlApp
WBK. Zapisz jako ścieżkę
WBK. Zamykać
. Kończyć
Zakończ się na
Koniec subwoofera