Hallo
Hier ist mein Problem, ich habe ein Makro erstellt, um eine Solidworks-Stückliste als Excel-Datei zu speichern. Alles funktioniert einwandfrei, außer dass die Excel-Tabelle, die aus der betreffenden Nomenklatur erstellt wurde, 2 zusätzliche Spalten am Ende der Tabelle hat. Eine QTE-Spalte und eine Spalte mit der Teilenummer.
Ich kann nicht herausfinden, woher das Problem kommt.
Wenn ich weiß, dass die 2 Spalten nicht erstellt werden, wenn ich die Bearbeitung des Speicherns der Stückliste in Excel manuell durchführe.
Zur Information: Ich weiß nicht viel über Code, es ist vor allem ^^ Einfallsreichtum.
Wenn du irgendwelche Ideen hast, bin ich dafür.
Hier ist der fragliche Code:
und für den Backup-Teil der Excel-Datei ist hier der Code:
Status = swTable.SaveAsExcel(stDestinationFolder & stFileName & ".xlsx", True, False)
Vielen Dank im Voraus
Vielleicht kommt es von 2 Spalten, die in Ihrer Tabelle versteckt sind?
Oder die standardmäßig verwendete Tabellenvorlagenvorlage?
Bearbeiten: siehe diesen Link im unteren Teil:
https://help.solidworks.com/2022/english/api/sldworksapi/Save_Table_to_Microsoft_Excel_Example_VB.htm?verRedirect=1
oder es ist gut spezifiziert:
Edit2: Es gibt Tags für den Code:
Es ist einfacher als ein Bild, da der Code kopiert und eingefügt werden kann.
Vielen Dank für Ihre schnelle Antwort.
Das Seltsame ist, dass diese Spalten nicht vorhanden sind, wenn ich die Stückliste manuell im Excel-Format speichere. Deshalb kam für mich das Problem aus dem Makro.
Ich habe in der Nomenklatur auf Solidworks (Rechtsklick auf Spalte anzeigen) überprüft, keine Spalte ist ausgeblendet.
In der Tat werde ich die Tags verwenden =)
In der Tat funktioniert es, indem die SaveAsExcel-Formel durch Ausschließen ausgeblendeter Zellen geändert wird. Die im Excel-Format gespeicherte Tabelle enthält die betreffenden 2 Spalten nicht mehr.
Ich weiß nicht, woher diese berühmten versteckten Säulen kommen, aber mein Problem ist gelöst.
Vielen Dank =D
Können Sie den Code für einen zukünftigen Interessenten teilen?
Und vergessen Sie nicht, das Thema als gelöst zu markieren.
Der fragliche Code:
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
Der Aufnahmeteil:
Status = swSpecTable.SaveAsExcel(stDestinationFolder & stFileName & ".xlsx", False, False)
Danke noch einmal