napisał: -=rafikos=- postów: 6
umieszczony: 4 marca 2009 17:23
|
|
OK poradziłem sobie,a wygląda to tak:
Private Sub CosTam()
'**************************************
Dim Excel As Object
Dim TextLen As Integer
Dim strInputens As String
Set Excel = GetObject(, "Excel.Application")
Dim ExcelSheet As Object
Set ExcelSheet = Excel.ActiveWorkbook.sheets("TEST")
Dim objLayers As AcadLayers 'potrzebne w kolejnej fazie
Dim objLayer As AcadLayer 'potrzebne w kolejnej fazie
CellRow = 10 'okresla zktorego rzedu startuje
'Do Until CellRow = 45 zasieg potrzebny w kolejnej fazie
strInputens = ExcelSheet.cells(1, 1).Value 'sprawdzenie czy mozna cos kombinowac z komorkami o co mi chodzilo
ExcelSheet.cells(2, 2).Value = strInputens
End Sub
był błąd bo nie stworzyłem obiektu excel, ale teraz wszystko działa, jak na razie
pozdrawiam |
|
napisał: admin postów: 613
umieszczony: 4 marca 2009 16:22
|
|
Cytat: ...za każdym razem wypisuje mi błąd object required.
Zamiesc moze swpj kod i napisz w ktorym miejscu dostajesz komunikat bledu? |
|
napisał: -=rafikos=- postów: 6
umieszczony: 3 marca 2009 17:07
|
|
Witam po przerwie
w Excelu mam komórkię w postaci
("A1") = "123.233,213.321 123.321,123 456.124,789.654 ..." itd. W Cadzie potrzebuje taką komórkę zamienić na string, a z tego narysować polilinię. Ale najpierw potrzebuje uzyskać dostęp do tej excelowskiej komóki z cada, za każdym razem wypisuje mi błąd object required. Proszę o małą pomoc z dostępem a nad resztą popracuję samodzielnie, no postaram się :)
pozdrawaim |
|
napisał: -=rafikos=- postów: 6
umieszczony: 19 lutego 2009 15:05
|
|
Wielkie dzięki za pomoc o to mi właśnie chodziło!
Teraz jestem w domu :)
Dzięki raz jeszcze |
|
napisał: Rycho postów: 291
umieszczony: 17 lutego 2009 00:44
|
|
Hej,
rozumiem, że nie masz problemu z utworzeniem zmiennej odnoszącej się do potrzebnego zakresu (obiektu Range).
Funkcja pobiera z wskazanego zakresu pary punktów w postaci "2541.124,4587.124" i zwracająca "jednego stringa":
Function PointsToString(rg As Range) As String
Dim w As String
Dim kom As Range
For Each kom In rg
w = w & CStr(kom.Value) & " "
Next kom
PointsToString = Left(w, Len(w) - 1)
End Function
Albo bardziej ogólnie - funkcja pobiera z zakresu (najlepiej dwukolumnowego :) ) liczby (współrzędne) i tworzy z nich "jednego stringa":
Function CellsToString(rg As Range) As String
'parametry zależne od wersji językowej
Dim SepD As String 'separator części ułamkowj liczby
Dim SepL As String 'separator elementów listy
Dim SepS As String 'separator pary pynktów = spacja ???
Dim w As String
Dim kom As Range
Dim f As Boolean 'flaga parzyste/nieparzyste
SepD = Application.DecimalSeparator
SepL = Application.International(xlListSeparator)
SepS = " "
For Each kom In rg
w = w & CStr(kom.Value)
f = Not f
If f Then w = w & SepL Else w = w & SepS
Next kom
CellsToString = Replace(w, SepD, ".")
End Function |
|
napisał: -=rafikos=- postów: 6
umieszczony: 16 lutego 2009 16:26
|
|
Dzięki za pomoc,
ale nie do końca mi o to chodziło. Ponieważ w komórkach excela mam punkty w postaci: "2541.124,4587.124" chciałbym tak zrobić aby każdą taką komórkę z kolumny dało się zapisać do jednego stringa np.: "2541.124,4587.124 2365.145,457857.132 4567.256,7846.156 1478.357,7894.147" coś takiego a z takiego stringa narysować polilinię (bez wysokości). Uściślając chodzi mi jak z komórek w kolumnie zrobić stringa?
Twoja metoda jest dobra i wszystko jest perfect ale jestem ciekaw czy da się na mój sposób.
pozdrawiam |
|
napisał: Harry postów: 42
umieszczony: 16 lutego 2009 12:46
|
|
Tak z grubsza napisane ale działa tylko jakieś kulfony z tych punktów powstają.
Musisz sobie zaimportować tego "frm" do projektu w Autocad i uruchomić.
W pliku z punktami musi być jeszcze określone współrzędna "Z" w kolumnie D (np 0 dla każdego punktu)
powinno działać |
|
napisał: -=rafikos=- postów: 6
umieszczony: 13 lutego 2009 18:12
|
|
Witam ponownie
dotarłem do etapu jak ze stringa wyglądającego tak" 12454.21,54554,12 4578.48,5487.45 8781.32,454.12 itd" narysować polilinię w cadzie, a teraz mam taki problem jak wyeksportować zawartość komórek w zakresie do stringa pewno to jest banalne ale komórki nie składają się z jednej wartości tylko z dwóch oddzielonych przecinkiem (po concatenate z "," ). Może ktoś pomóc?
pozdro |
|
napisał: -=rafikos=- postów: 6
umieszczony: 12 lutego 2009 17:01
edytowany: 12 lutego 2009 17:51
|
|
Witam, w robocie mnie męczą żeby napisać skrypt w vba odczytujący wartości komórek i rysujący polilinie. Nigdy nie bawiłem się w takie rzeczy w cadzie ,a oni nie rozumieją że pisanie skryptów w bash-u to nie to samo, dlatego mam takie pytanie:
jak uzyskać dostęp do wybranego Arkusza z Autocada i odczytać wartości komórek.
W Excelu przygotowałem sobie już templata nawet trochę kodu vba jest wklejonego w forum :). Proszę o wyrozumiałość bo zajmuje się tym od około tygodnia w przerwach pomiędzy pracą i to nie dla własnej przyjemności chcę to odwalić jak najszybciej i mieć spokój, nie zależy mi na przejżystości kodu ani na szybkości tylko na tym aby działało :)
Ponadto nie mam żadnych materiałów tylko to co w necie przeczytam.
Chodzi mi o coś takiego odczytać wartości komórek z kolumny concatenate i narysować z nich polilinie w cadzie.
Pozdrawiam. |
|
wstecz 1 dalej wszystkich stron: 1
|