Ovde je bilo reči o formuli koja bi vraćala vrednost ćelije iz druge radne sveske, a ne o načinu kako se to realizuje u VBA kodu.
Realizacija u VBA kodu nije problematična.
Ukoliko ti odgovara da je radna sveska iz koje se preuzima vrednost otvorena, koristiš standardne metode Range/Cells. (Pri tome otvorena radna sveska ne mora da se prikazuje korisniku, može biti skrivena)
Code:
Dim wbk As Workbook
Set wbk = Application.Workbooks.Open(Filename:="c:\Temp\Test.xlsx")
Vrednost = wbk.Sheets("Sheet1").Range("B5").Value
Ako hoćeš da pročitaš vrednost iz zatvorene radne sveske, pogledaj kod iz prethodnog odgovora. Videćeš da ključna funkcija ExecuteExcel4Macro. Najbolje da u tom slučaju napraviš svoju funkciju koju ćeš pozivati po potrebi. Vidi npr. rešenje ovde
http://spreadsheetpage.com/ind...et_a_value_from_a_closed_file/
U primeru ćeš takođe videti ono što je tebe mučilo - jedosturki navodnik (apostrof) stavlja se između dvostrukih navodnika u kodu da ne bi bilo zabune.
Naravno funkcija GetValue sa navedenog linka može se pozvati i direktno iz formule radnog lista, ne mora iz VBA koda.
Mozda još bolje rešenje je korišćenje ADO konekcije za čitanje iz zatvorene radne sveske
http://www.ozgrid.com/forum/showthread.php?t=17158
[Ovu poruku je menjao Jpeca dana 27.07.2010. u 22:04 GMT+1]
Nije to loše Rembrante, samo što ne bi dodao još malo boje?