W jakis sposob zrealizowac w VBA w Excelu?
Jestem w skoroszycie test1 w arkuszu2
Musze odwolac sie na chwile do skoroszytu test2 do arkusza1 zaczytac dane do
tabeli (w pamieci) i wrocic do
skoroszytu test1 arkusz2
Prosze o podpowiedz jak zrobic takie przeskoki miedzy arkuszami.
dzioback
dim oWrk1 as Excel.Workbook
dim oWrk2 as Excel.Workbook
dim oArk1 as Excel.Worksheet
dim oArk2 as Excel.Worksheet
dim oZakres as Excel.Range
Set oWrk1 = Workbooks("Zeszyt1")
Set oWrk2 = Workbooks("Zeszyt2")
Set oArk1=oWrk1.Sheets("Arkusz2")
Set oArk2=oWrk2.Sheets("Arkusz1")
Set oZakres=oArk2.Range("A1:D6")
pzdr
brunner
Użytkownik "martels" <m...@inter.pl> napisał w wiadomości
news:fmkchk$621$1...@nemesis.news.tpi.pl...
A ja robię w tym celu formułę tablicową w ukrytym arkuszu do odpowiedniego
skoroszytu. Podczas wstawiania formuly nast. natychmiastowe pobranie danych,
otem mozna ją usunąć! Otwieranie skoroszytu jest bez sensu, bo zabiera
wiecej czasu!
witam.
Dzieki za pomoc ale gdy wpisuje w arkuszu
Workbooks("slowniki").Activate
(slowniki to nazwa drugiego skoroszytu do kotrgo chce sie odwloac. Jest
oczywiscie uruchomiony.)
to przy uruchamianiu pojawia mi sie komunikat:
Run-time error '9'
Subscript out of range
Moze jeszcze jakies wskazowki?
martels
Sprawdź, czy dobrą nazwę wpisujesz. Może nazywa się "slowniki.xls" na
przykład...
pzdr
brunner
Nie musisz otwierać tego drugiego skoroszytu. Wystarczy, że użyjesz metody
ExecuteExcel4Macro
wartość = ExecuteExcel4Macro("'D:\Moje
dokumenty\[Zeszyt2.xls]Arkusz1'!R1C1")
Musisz uważać, żeby odwoływać się do komórek w notacji R1C1 (angielski
odpoweidnik notacji W1K1).
--
Pozdrowienia
pxd74
Nie znalem tej metody... Czy na pewno jest lepsza niz bezposrednie
odwolanie tablicowe:
{=D:\Moje dokumenty\[Zeszyt2.xls]Arkusz1'!$B$2:$C$3} -bo to przeciez
prostsze... :)
No, ale dlaczego wykorzystujesz tutaj formułę tablicową, bo nie rozumiem.
Jeśli chodzi Ci o rozwiązanie przedstawione przez użytkownika Xanta to mój
sposób ma taką przewagę, że nie używa komórek pomocniczych. Nie trzeba
utrzymywać dodatkowego ukrytego arkusza, przeliczać tej formuły za każdym
razem czy używać dodatkowych instrukcji do wpisywania i usuwania tej
formuły.
Oczywiście te różnice to właściwie nie mają dużego znaczenia i tak naprawdę
co jest lepsze zależy od indywidualnych odczuć danego programisty.
--
Pozdrowienia
pxd74
Ano po to zeby jednym linkiem odczytac dowolny zakres danych bez otwierania
zrodlowego skoroszytu -szybkosc b. duza! Oczywiscie kazdy mysli i robi
swoje, ale nie wmawiajcie mi, ze otwieranie innych plików excela w celu ich
odczytywania jest dobrym sposobem... Z W-wy do Zakopca mozna jechac tez
przez Szczecin, jezeli komus zalezy na widoczkach....
> Jeśli chodzi Ci o rozwiązanie przedstawione przez użytkownika Xanta to
> mój sposób ma taką przewagę, że nie używa komórek pomocniczych. Nie
> trzeba utrzymywać dodatkowego ukrytego arkusza, przeliczać tej formuły
> za każdym razem czy używać dodatkowych instrukcji do wpisywania i
> usuwania tej formuły.
> Oczywiście te różnice to właściwie nie mają dużego znaczenia i tak
> naprawdę co jest lepsze zależy od indywidualnych odczuć danego
> programisty.
OK, myslalem, ze niezle by bylo te dane zatrzymac gdzies w arkuszu... ale
skoro nie, to Twoj pomysl jest OK i wielkie dzieki za neigo, bo go nie
znałem. Pozdrawiam
> >> Nie znalem tej metody... Czy na pewno jest lepsza niz bezposrednie
> >> odwolanie tablicowe:
> >> {=D:\Moje dokumenty\[Zeszyt2.xls]Arkusz1'!$B$2:$C$3} -bo to przeciez
> >> prostsze... :)
> > No, ale dlaczego wykorzystujesz tutaj formułę tablicową, bo nie rozumiem.
>
> Ano po to zeby jednym linkiem odczytac dowolny zakres danych bez
otwierania
> zrodlowego skoroszytu -szybkosc b. duza! Oczywiscie kazdy mysli i robi
> swoje, ale nie wmawiajcie mi, ze otwieranie innych plików excela w celu
ich
> odczytywania jest dobrym sposobem... Z W-wy do Zakopca mozna jechac tez
> przez Szczecin, jezeli komus zalezy na widoczkach....
Chodziło mi o to, że zamiast formuły tablicowej możesz wpisać zwykłą formułę
w jedną komórkę:
=D:\Moje dokumenty\[Zeszyt2.xls]Arkusz1'!B2
i skopiowiać ją do innych komórek. Ten sposób ma tą przewagę, że nie znać
dokładnych rozmiarów zakresu, a po drugie w każdej chwili możesz usunąć
tylko część danych - wprzypadku tablicy możesz usunąć tylko całą tablicę.
--
Pozdrowienia
pxd74
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/