Autor | Wypowiedź |
Zibi
2015-10-29, 14:24
Pomógł 0 raz(y).
|
Jest możliwość z poziomu VBA otworzyć i odtaczać dane z arkusza Excela ?? czy tylko można to zrobić otwierając plik w Excelu i odczyt danych z aktywnego arkusza ?? |
|
|
2015-10-29, 14:43
Pomógł 18 raz(y).
|
Zależy co ta tabela ma robić. Jeśli np. jest tabelą konfiguracji to jak najbardziej. |
|
|
Zibi
2015-10-29, 15:02
Pomógł 0 raz(y).
|
w tabeli będą dane potrzebne do budowy modeli ale nie jest to typowa tabela konfiguracji |
|
|
2015-10-29, 15:16
Pomógł 18 raz(y).
|
No masz jakieś dane do budowy modeli i co z nimi chcesz robić? |
|
|
Zibi
2015-10-29, 15:25
Pomógł 0 raz(y).
|
model |
|
|
2015-10-29, 18:03
Pomógł 36 raz(y).
|
Witam. Jest możliwość budowania modeli, na podstawie głównego szkicu, a wymiary szkicu (podstawowego) można powiązać z Excel-em. I wpisując w Excel-u odpowiedni wymiar, to po otwarciu modelu i dokumentacji 2D, model się zaktualizuje. Nazywa się " Parametryzacja " Oczywiście model mysi być powiązany z tym szkicem - to jest warunek. Pozdrawiam. |
|
|
.
2015-10-30, 07:14
Pomógł 52 raz(y).
|
Kolega Zbigniew pytał o VBA. Oczywiście jest możliwość współpracy makra SW z EXCELEM, można nie tylko czytać dane z arkusza ale też tworzyć nowe arkusze lub je modyfikować. Używa się podobnych funkcji jak w makrach EXCELA tylko odpowiednio zaimplementowane do makra SolidWorksa. Tu przykład odczytu danych z arkusza i zapis ich do tablicy. Sub OdczytDanychExcel(Opcja, ListaDanych() As String) Const xlCellTypeLastCell = 11 Dim oExcel As Object Dim oBook As Object Dim oSheet As Object Dim Adres As String Dim PlikEXCEL As String Dim Dlugosc As Long Dim IloscKolumn As Long Dim LastRow As Long Set oExcel = CreateObject("Excel.Application") Set oBook = oExcel.Workbooks.open(PlikDanychUzytkownika) Set oSheet = oBook.Worksheets(1) LastRow = oSheet.cells.SpecialCells(xlCellTypeLastCell).Activate intNewRow = oExcel.ActiveCell.Row + 1 IloscKolumn = oExcel.ActiveCell.Column - 1 Opcja = intNewRow ReDim ListaDanych(IloscKolumn, Opcja) For j = 0 To IloscKolumn For i = 0 To Opcja Adres = Chr(j + 65) + Trim(Str(i + 1)) ListaDanych(j, i) = oSheet.Range(Adres).value Next i Next j oBook.Close oExcel.Quit End Sub |
|
|
Zibi
2015-10-30, 08:09
Pomógł 0 raz(y).
|
Dzięki Właśnie o coś takiego mi chodziło. Jest to gdzieś opisane w API bo znalazłem tylko przykłady odczytu z arkusza otwartego w Excelu |
|
|
.
2015-10-30, 10:01
Pomógł 52 raz(y).
|
W API helpie tego nie ma. Sam szukam jakiegoś zbioru informacji. Załączoną procedurę napisałem bazując na różnych przykładach na forach niepolskojęzycznych. |
|
|