ID tematu: 873
|
Makro wpisujące tekst formuły zależy od wart. dwóch komórek |
Autor |
Wiadomość |
td2003
Exceloholic
Posty: 132
|
Wysłany: 04-04-2007, 17:36 Makro wpisujące tekst formuły zależy od wart. dwóch komórek
|
|
|
Witam ponownie!
Na początek z satysfakcją zauważam, że ostatnio pytam Was o poradę jakby nieco rzadziej, bo z wieloma rzeczami radzę już sobie samemu.
Ale tym razem mam zadanie, do którego potrzebuję pomocy. Jest ono nieco skomplikowane, ale postaram się opisać je w miarę czytelnie.
Otóż mam kilkadziesiąt plików źródłowych zawierających dane i plik wynikowy, do którego zaczytywane będą dane z plików źródłowych. Pliki źródłowe mają identyczną strukturę, różnią się tylko wartościami poszczególnych komórek oraz (co tutaj najważniejsze) nazwami. Nazwy plików źródłowych są w formacie "x-y.xls", gdzie x to nr. 1-15, a y to 1-31.
Więc na czym polega problem?
Otóż do pliku wynikowego zaczytywane będą dane tylko z niektórych plików źródłowych. To, który plik źródłowy będzie brany pod uwagę będzie zależało od wartości dwóch komórek w pliku wynikowym.
Przykłady:
1) W pliku wynikowym A1=2, A2=16, co powoduje, że do kom. D5 wpisana będzie formuła "='[2-16.xls]Arkusz1'!$D$5" (czyli utworzone będzie łącze do kom. D5 w Arkuszu1 pliku 2-16.xls)
2) w pliku wynikowym A1=7, A2=29, formuła w kom. D5: "='[7-29.xls]Arkusz1'!$D$5".
W sumie podobna formuła będzie wpisywana jeszcze do kilkunastu innych komórek, ale działać będzie ta sama zasada, więc jak będę miał takie wzorcowe makro, to dalej już sobie poradzę.
Próbowałem poprzez przypisywanie zmiennym wartości tych komórek i wstawianie zmiennych do tekstu formuły, ale (oczywiście) nie idzie.
Będę wdzięczny za pomoc w zmierzeniu się z tym problemem. |
|
| ID posta:
4490
|
|
|
|
|
|
|
Tajan
Pomógł: 5512 razy Posty: 11984
|
Wysłany: 06-04-2007, 00:06
|
|
|
W sumie rzecz się sprowadza do sklejenia kilku ciągów tekstowych:
Kod: | cz1 = Range("a1").Value
cz2 = Range("a2").Value
With Range("D5")
.Formula = "='[" & cz1 & "-" & cz2 & ".xls]Arkusz1'!" & .Address
End With
|
z tym, że jeżeli pliki źródłowe nie sa otwarte, w formule należy jeszcze dodać ich ścieżkę:
Kod: |
sciezka = "c:\dane\"
With Range("D5")
.Formula = "='" & sciezka & "[" & cz1 & "-" & cz2 & ".xls]Arkusz1'!" & .Address
End With |
Jezeli ścieżka do tych plików była identyczna z plikiem wynikowym, to można to wykorzystać definiując zmienną scieżka np w następujący sposób:
Kod: | sciezka = ActiveWorkbook.Path & "\"
|
|
|
| ID posta:
4544
|
|
|
|
|
|
td2003
Exceloholic
Posty: 132
|
Wysłany: 06-04-2007, 17:41
|
|
|
Dzięki Tajan, oczywiście działa (jak zawsze). Teraz mogę spokojnie pracować nad resztą makra. |
|
| ID posta:
4558
|
|
|
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
|
Strona uĹźywa plikĂłw cookies.
Kliknij tutaj, Ĺźeby dowiedzieÄ siÄ jaki jest cel uĹźywania cookies oraz jak zmieniÄ ustawienia cookie w przeglďż˝darce.
KorzystajÄ
c ze strony uĹźytkownik wyraĹźa zgodÄ na uĹźywanie plikĂłw cookies, zgodnie z bieĹźÄ
cymi ustawieniami przeglÄ
darki.
SprawdĹş, w jaki sposĂłb przetwarzamy dane osobowe
|