Elektroda.pl
Elektroda.pl
X
SterControl
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Makro - Dopisywanie konfiguracji

Tomek456 29 Sie 2013 21:07 1731 15
  • #1 29 Sie 2013 21:07
    Tomek456
    Poziom 9  

    Witam, mam taki problem z dopisywaniem poszczególnych konfiguracji w tabeli arkusza Excel z poziomu SolidWorks. Chciałbym, żeby makro dopisywało wiersz z konfiguracją o jeden większą niż poprzednia, interesują mnie tylko trzy ostatnie znaki, np. 099, lub 078, lub 088. Problem pojawia się przy dojściu do liczby 100, bo wtedy makro dopisuje mi zamiast 101, liczbę 0101, później 00102. Czy potrafiłby ktoś pomóc mi znaleźć odpowiedź?

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0 15
  • SterControl
  • Pomocny post
    #2 29 Sie 2013 23:03
    adamas_nt
    Moderator Programowanie

    W kodzie arkusza działa prawidłowo. Może spróbuj po wartości zamiast po długości:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • SterControl
  • #3 30 Sie 2013 08:30
    Tomek456
    Poziom 9  

    Dziękuję Przyjacielu, bardzo pomysłowe rozwiązanie, trochę jeszcze muszę zmodyfikować, ale już mało brakuje, dzięki wielkie
    :)

    0
  • #4 30 Sie 2013 20:40
    Tomek456
    Poziom 9  

    Niestety, po przetestowaniu makra, troszkę ono popełnia błąd, dla liczb poniżej 100 działa poprawnie, czyli trafia w odpowiedni warunek, dla liczb od 100 w górę dodaje za każdym razem zero przed liczbą, później dwa zera itd. Sądzę, że musi być na to jakaś procedura, dzięki której zrozumiem, jak to się zmienia dla trzech znaków, ale mimo wszystko wielkie dzięki:)

    0
  • #5 31 Sie 2013 08:48
    adamas_nt
    Moderator Programowanie

    Czy to cały kod, czy tylko fragment? Może zera są konsekwencją innego błędu? A co z pozostała częścią ciągu? Jak wyglądają dane na wejściu?

    0
  • #6 04 Wrz 2013 16:06
    Tomek456
    Poziom 9  

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Cały kod wygląda tak, jednak rzeczywiście coś może być nie tak w warunkach początkowych, bo nie do końca wychodzi tak jak trzeba. Dziękuję za dotychczasową i ewentualną pomoc.

    0
  • #7 04 Wrz 2013 21:32
    adamas_nt
    Moderator Programowanie

    Nie wiem, czy przeoczyłeś, ale masz błąd w linii 'Select Case Len(Konf_n)' (długość ciągu). Natomiast wewnątrz testujesz wartości...

    0
  • #8 04 Wrz 2013 21:42
    Tomek456
    Poziom 9  

    Co byś zmienił? Select Case konf_n tylko?

    0
  • Pomocny post
    #9 04 Wrz 2013 21:45
    adamas_nt
    Moderator Programowanie

    Tak (było już w moim przykładzie wyżej).

    0
  • #10 04 Wrz 2013 21:54
    Tomek456
    Poziom 9  

    No rzeczywiście, jutro przetestuję kod i już powinno być poprawnie, dziękuje:)

    0
  • #11 06 Wrz 2013 09:55
    Tomek456
    Poziom 9  

    Witam raz jeszcze. Niestety makro nie działa tym sposobem, widać musi być jeszcze jakiś inny błąd. Nawet nie dopisuje teraz tych 3 ostatnich znaków. Byłbym wdzięczny jakby Pan przetestował to makro, sądzę, że to jakiś mały błąd, ale jak dla mnie póki co nie do przejścia.

    0
  • Pomocny post
    #12 06 Wrz 2013 10:59
    adamas_nt
    Moderator Programowanie

    Gdzie mam oczy! Przecież w kodzie zrobiłeś odejmowanie :)

    W załączniku prawidłowo testowane wartości... Zwróć uwagę na zmienną 'prf' i jej wartość.

    0
  • #13 06 Wrz 2013 11:30
    Tomek456
    Poziom 9  

    Dziękuję za poświęcony czas i za pomoć:) duży szacunek dla Pana:) przyznam szczerze, że to tylko fragment długiego kodu makra w mojej pracy magisterskiej, dlatego raz jeszcze dziękuję:)

    0
  • #14 06 Wrz 2013 12:00
    23844
    Użytkownik usunął konto  
  • #15 06 Wrz 2013 12:06
    Tomek456
    Poziom 9  

    Dokładnie, z Excelem łączę się przez referencje, oj dużo tego:) z poziomu visualbasic otwieram tabele excel w solidworks tzw, design table i tam właśnie następują zmiany w tabeli, krótko mówiąc połączenie kilku różnych programów:) dziękuję postaram się przejrzeć kod:)

    0
  • Pomocny post
    #16 06 Wrz 2013 12:15
    23844
    Użytkownik usunął konto