Ad 1. Tu należy zwrócić uwagę, że każdy arkusz ma w VBA dwie nazwy, tzw. nazwę "zakładkową" - widoczną na zakładce arkusza i nazwę kodową - dostępną tylko w VBA. Te nazwy są początkowo identyczne, ale użytkownik może je zmieniać niezależnie, więc mogą później się różnić. Jeśli piszemy odwołanie:
Zaloguj się, aby zobaczyć kod
to wykorzystujemy nazwę zakładkową arkusza, a jeżeli napiszemy:
Zaloguj się, aby zobaczyć kod
to używamy nazwy kodowej.
Wracając do treści pytania, odwołanie może wyglądać tak:
Zaloguj się, aby zobaczyć kod
Komórka B6 musi zawierać nazwę zakładkową arkusza, z którego chcemy czytać dane.
Ad 2. Należy podać szukany tekst w cudzysłowie:
Zaloguj się, aby zobaczyć kod
Ad 3.
darkstar666 napisał: Jaka jest różnica pomiędzy: ActiveCell.FormulaR1C1 / ActiveCell.Formula / ActiveCell.Function / Application.WorksheetFunction / WorksheetFunction
ActiveCell.FormulaR1C1 oznacza, że formuła będzie w wersji angielskiej, a odwołania w niej będą w stylu R1C1
ActiveCell.Formula oznacza, że formuła będzie w wersji angielskiej, a odwołania w niej będą w stylu A1
ActiveCell.Function - nie ma takiej składni
Application.WorksheetFunction.angielska_nazwa_funkcji i WorksheetFunction.angielska_nazwa_funkcji oznaczają to samo, natomiast
Application.angielska_nazwa_funkcji jest wywołaniem "w starym stylu" i w szczegółach różni się od poprzedniego (inna obsługa błędów, obsługa składni rozszerzonej, ale za to jest nieco wolniejsza).
Nota bene ten kod, który pokazałeś to jest pomieszanie z poplątaniem.
Funkcje arkuszowe można wywoływać w VBA w ten sposób, że obliczenia wykonuje VBA i do komórki trafia tylko wynik. Wtedy piszemy np.
Zaloguj się, aby zobaczyć kod
Używamy tu odwołań do obiektów lub ich wartości.
Inny sposób, to wstawienie formuły do komórki arkusza, i dopiero ta formuła przy przeliczeniu arkusza zwróci wynik. Wtedy używamy właściwości Formula lub analogicznej:
Zaloguj się, aby zobaczyć kod
Tu zapis jest jak w angielskim Excelu.
Użycie Formula zamiast Value w pierwszej wersji nie jest błędem, ale niepotrzebnie zaciemnia zapis i wymusza dodatkowe działanie.