Aloah,
wie man aus anderen Postings von mir hier mitbekommen hat, arbeite ich seit neuestem sehr ausgiebig mit Tabellen. Ich nutze dabei die Fähigkeit von Excel zwischen Tabellen aus unterschiedlichen Dateien Verknüpfungen zu erstellen. Demzufolge habe ich in den DesignTable verweise auf Zellen in einer anderen Datei (Mastertabelle). Jetzt gibt es aber das Problem, dass wenn sich in der Mastertabelle was geändert hat die abhängigen Tabellen das nicht mitbekommen und von Hand aktualisiert werden müssen. Aber da Excel ja VBA unterstützt möchte ich dies automatisieren. Das heisst, dass ich ein Makro brauche, welches das DesignTable öffnet, aktualisiert und wieder schließt. Öffnen und schließen sind kein Problem, aber das aktualisieren kriege ich nicht hin. Im Klartext sieht mein Makro derzeit so aus (aus der API-Hilfe übernommen und gekürzt)
Sub main()
'SolidWorks Objects
Dim swApp As SldWorks.SldWorks
Dim Model As ModelDoc2
'The Model's design table
Dim DTable As DesignTable
Dim isGood As Boolean
'Attach the VB program to SolidWorks and get the active model
Set swApp = CreateObject("SldWorks.Application")
Set Model = swApp.ActiveDoc
'Get the Design Table from the Model
Set DTable = Model.GetDesignTable
'Activates the Design Table so that its cells can be accessed. The SolidWorks API only allows for reading data from the Design Table. We need to access the Excel API to modify it.
isGood = DTable.Attach
'If the Attach call fails, then inform the user and exit the subroutine
If isGood = False Then
MsgBox "Is nich! Irgendwas haut nich hin."
Exit Sub
End If
'Load the Design Table into Excel in order to modify its cells
Set XL = GetObject(, "Excel.application")
HIER MUSS DIE AKTUALISIERUNG DER VERKNÜPFUNGEN REIN
'Update the model to reflect the changes made to the Design Table
DTable.UpdateModel
'Dispose of the Excel Object
XL.Quit
'Deactivate the Design Table
DTable.Detach
End Sub
Ich hab im Netz folgenden Code für zum automatischen Aktualisieren gefunden
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
Da sagt er mir aber was von Objekt erforderlich, wenn er an diese Zeile kommt.
Ich habs auch noch mit ein paar anderen Sachen versucht, die ich so gefunden habe, aber das war alles nur rumstümperei, da ich das ja bis heute noch nichtmal ansatzweise gut beherrsche. Weiss jemand wie ich die Sache trotzdem gebacken kriegen kann?
Tausend Dank.
Kalle
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP