Witam
Oto mój problem, utworzyłem makro, aby zapisać zestawienie komponentów Solidworks jako plik Excel. Wszystko działa idealnie, z wyjątkiem tego, że tabela Excela utworzona na podstawie danej nomenklatury ma 2 dodatkowe kolumny na końcu tabeli. Jedna kolumna QTE i jedna kolumna numeru części.
Nie mogę zrozumieć, skąd bierze się problem.
Wiedząc, że kiedy ręcznie wykonuję manipulację zapisywaniem zestawienia materiałów w programie Excel, 2 kolumny nie są tworzone.
Dla informacji, nie znam się zbytnio na kodzie, głównie ^^ zaradności.
Jeśli masz jakieś pomysły, jestem za tym.
Oto kod, o którym mowa:

a dla części kopii zapasowej pliku Excel oto kod:
Status = swTable.SaveAsExcel(stDestinationFolder & stFileName & ".xlsx", True, False)
Z góry dziękuję
Może pochodzi z 2 kolumn ukrytych w Twojej tabeli?
A może szablon szablonu tabeli używany domyślnie?
Edycja: zobacz ten link w dolnej części:
https://help.solidworks.com/2022/english/api/sldworksapi/Save_Table_to_Microsoft_Excel_Example_VB.htm?verRedirect=1
lub jest dobrze określony:

Edit2: istnieją tagi dla kodu:
Jest to łatwiejsze niż obraz, ponieważ kod można skopiować i wkleić.
Dziękuję za tak szybką odpowiedź.
Dziwne jest to, że kiedy ręcznie zapisuję BOM w formacie Excela, te kolumny nie istnieją. Dlatego dla mnie problem wziął się z makra.
Sprawdziłem w nomenklaturze w Solidworks (kliknij prawym przyciskiem myszy pokaż kolumnę), żadna kolumna nie jest ukryta.
Rzeczywiście, zamierzam użyć tagów =)
Rzeczywiście, modyfikując formułę SaveAsExcel, wykluczając ukryte komórki, działa; tabela zapisana w formacie Excel nie zawiera już 2 kolumn, o których mowa.
Nie wiem, skąd się wzięły te słynne ukryte kolumny, ale mój problem został rozwiązany.
Dziękuję bardzo =D
Czy możesz udostępnić kod dla przyszłej zainteresowanej strony?
I nie zapomnij umieścić tematu jako rozwiązany.
Kod, o którym mowa:
Dim swApp As SldWorks.SldWorks
Dim swModDoc As SldWorks.IModelDoc2
Dim swTable As SldWorks.ITableAnnotation
Set swApp = Application.SldWorks
Set swModDoc = swApp.ActiveDoc
Dim swSM As ISelectionMgr
Set swSM = swModDoc.SelectionManager
Set swTable = swSM.GetSelectedObject6(1, -1)
swModDoc.ClearSelection2 (True)
Dim swSpecTable As IBomTableAnnotation
Set swSpecTable = swTable
Część nagraniowa:
Status = swSpecTable.SaveAsExcel(stDestinationFolder & stFileName & ".xlsx", False, False)
Jeszcze raz dziękuję