SolidWorks >> Makra >> Odczyt danych z pliku Excela
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.
 

PSWUG

Strefa Resellera

Publikuj

Społeczność

Ankieta

Linki

RSS

BOT