Aby wyświetlić tabelę na rysunku tak, jak chcę, muszę sformatować plik programu Excel w miejscu, w którym się znajduje. Przechodzi to przez ukrywanie, aw niektórych przypadkach pokazywanie kolumn/wierszy i chciałbym to zrobić automatycznie, tak za pomocą makra, ale nie mogę tego zrobić.
Nagrałem makro w programie Excel, aby zobaczyć, jaki może mieć wygląd: Sub Cacher_ligne_colonne() ' 'Makro do ukrywania żądanych wierszy i kolumn Kolumny("B:E"). Wybrać Selection.EntireColumn.Hidden = Prawda Kolumny("I:K"). Wybrać Selection.EntireColumn.Hidden = Prawda Wiersze("35:36"). Wybrać Zakres("A36"). Aktywować Selection.EntireRow.Hidden = Prawda Wiersze("2:8"). Wybrać Zakres("A8"). Aktywować Selection.EntireRow.Hidden = Prawda Koniec subwoofera
Ale domyślam się, że pod SW to nie to samo, może po prostu trzeba gdzieś dodać xlSW? A zapisując manipulację pod oprogramowaniem, rejestruje tylko ruch okna, a nie akcję "maskującą":
Dim swApp As Object
Przyciemnij część jako obiekt Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long
Myślę, że powinieneś już otworzyć swój stół tą metodą: http://help.solidworks.com/2016/english/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IModelDoc2~InsertFamilyTableEdit.html
Następnie tworzysz makro Excela i wywołujesz je z oprogramowania.
Dziękuję za odpowiedź, rzeczywiście już otwieram moją rodzinę pokojową. Mam już dobrze opracowany kod do wybierania konfiguracji za pomocą formularza SW, więc już używam tego rodzaju składni.
Będąc całkiem nowym w programowaniu Vba, nie wiedziałem, że możliwe jest wywołanie makra Excela* z oprogramowania. Pomysł byłby taki, żeby zrobić makro napisane w Excelu, ale wywołane z SW czy to by działało cały czas? Czy masz przykład kodu wywołującego funkcję Excela z SW stp?
Wracam do tego tematu, bo zrobiłem trochę researchu, ale znowu utknąłem. Napisałem kod, który działa w Excelu w celu wyświetlenia wszystkich wierszy i kolumn w tabeli:
Dim ShowAllLines As Integer
Dim ShowAllColumns As Integer
ShowAllLines = Columns(1).Find("", after:=[A1]).Row
Range("A1:A" & ShowAllLines).Select
Selection.EntireRow.Hidden = False
ShowAllColumns = Rows(1).Find("", after:=[A1]).Column
Range("A1:" & Chr(64 + ShowAllColumns) & "1").Select
Selection.EntireColumn.Hidden = False
Działa to bardzo dobrze z modułu Vba Excela, ale jak tylko przełączę się na SW, mam błąd z pierwszej linii:
Dim ShowAllLines As Integer
Dim ShowAllColumns As Integer
ShowAllLines = xlWS.Columns(1).Find("", after:=[A1]).Row
xlWS.Range("A1:A" & ShowAllLines).Select
Selection.EntireRow.Hidden = False
ShowAllColumns = xlWS.Rows(1).Find("", after:=[A1]).Column
xlWS.Range("A1:" & Chr(64 + ShowAllColumns) & "1").Select
Selection.EntireColumn.Hidden = False
Domyślam się, że to w składni funkcji "Znajdź" zacina się, ale nie znalazłem żadnej pomocy, która już istnieje, dlatego pozwalam sobie opublikować tutaj.
Nie bardzo rozumiem, co masz na myśli, ponieważ dla mnie już dostaję aktywny arkusz i zeszyt ćwiczeń, odkąd w nim piszę. Tak naprawdę dzięki mojemu makrowi otwieram plik 3D, otwieram powiązaną rodzinę, wpisuję wybór użytkownika w komórce, zamykam rodzinę, aktualizuję rodzinę, odbudowuję i tam moja konfiguracja jest aktywowana.
I w tym chciałbym ukryć/pokazać kolumny zgodnie z wyborem użytkownika.