Cze wszystkim.
Mam program VBA do eksportowania zestawienia komponentów w arkuszu .xls
Wszystko idzie dobrze, z wyjątkiem jednej opcji, której nie mogę zmienić.
Chciałbym, aby program wybrał aktualną konfigurację.
Obecnie poszukuje konfiguracji o nazwie "Default"
Konfiguracja = "Domyślnie"
Jesli ktos zna odpowiedz :)
****************************
Wstawianie tabeli BOM i wyodrębnianie danych (VBA)
W tym przykładzie pokazano, jak wstawić tabelę BOM i wyodrębnić z niej dane.
'-------------------------------------------------------
' Warunki wstępne:
' 1. Sprawdzić, czy określony dokument rysunku ma zostać otwarty
' istnieje.
' 2. Otwórz okno bezpośrednie.
'
' Warunki końcowe:
' 1. Otwiera określony dokument rysunku.
' 2. Wybiera widok rysunku.
' 3. Wstawia tabelę zestawienia komponentów w punkcie, w którym rysunek
' został wybrany.
' 4. Sprawdź rysunek i okno bezpośrednie.
'
' UWAGA: Ponieważ rysunek jest używany gdzie indziej, nie należy
' Zapisz zmiany.
'-------------------------------------------------------
Opcja jawna
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
Ustaw swApp = Application.SldWorks
Ustaw swModel = swApp.ActiveDoc
Ustaw swModelDocExt = swModel.Extension
TemplateName = "M:\DATABASE\SZABLONY\05-Model nomenklatury\GP_ASM_Nomenclature BOS.sldbomtbt"
BomType = swBomType_Indented
Konfiguracja = "Domyślnie"
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 config = swModel.GetActiveConfiguration
Ustaw cusPropMgr = config. 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 = "C:\temp\BOS.xlsx"
Z xlApp
WBK. Zapisz jako ścieżkę
WBK. Zamykać
. Kończyć
Zakończ się na
Koniec subwoofera
wstaw-bom-asm_-_03.swp