ID tematu: 56862
 |
62. Jeszcze o odczytywaniu danych z zamkniętych plików |
Autor |
Wiadomość |
Maciej Gonet
Excel Expert

Wersja: Win Office 365
Posty: 9086
|
Wysłany: 03-04-2017, 11:12 62. Jeszcze o odczytywaniu danych z zamkniętych plików
|
|
|
Problem odczytu danych z zamkniętych plików stale powraca w pytaniach użytkowników Excela.
Chciałbym zwrócić uwagę na jeszcze jeden, mniej popularny, choć również skuteczny sposób rozwiązania tego problemu. Chodzi o wykorzystanie nazw arkuszowych. Nazwy te mogą być nadawane dowolnym fragmentom arkusza, w tym również zakresom złożonym. Nie ma znaczenia, czy skoroszyt jest otwarty, czy nie. Oczywiście nazwa odnosząca się do zamkniętego skoroszytu musi zawierać ścieżkę dostępu. Gdy taka nazwa zostanie zdefiniowana można odczytać dowolny jej fragment za pomocą funkcji INDEKS. Proces nadawania nazw można zautomatyzować na przykład przez wykorzystanie obsługi zdarzenia Change.
Można na przykład wytypować 2 kolumny w arkuszu - w kolumnie A będziemy umieszczać nazwy, a obok w kolumnie B - teksty odwołań, które chcemy do tych nazw przypisać. Mogą to być formuły składające tekst z elementów, albo gotowe formuły odwołań, wtedy należy je poprzedzić apostrofem, aby pozostały w formie tekstu. Procedura obsługi zdarzenia Change będzie śledzić zmiany w kolumnie B i jeśli pojawi się tam tekst zaczynający się od znaku równości, a równocześnie obok w kolumnie A będzie tekst, który spełnia kryteria nazwy, procedura podejmie próbę utworzenia nazwy z tych danych. O powodzeniu lub niepowodzeniu będzie informował komunikat MsgBox. Procedura nie ostrzega o zmianie definicji istniejącej nazwy. W razie niepowodzenia poprzednia definicja, jeśli istniała, będzie zachowana.
Kod: | Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Or Target.Column <> 2 Then Exit Sub
On Error Resume Next
If Target.Offset(, -1) = "" Then Exit Sub
If Left(Target, 1) = "=" Then
Names.Add Target.Offset(, -1), Target.Value
MsgBox "Nadanie nazwy '" & Target.Offset(, -1) & _
IIf(Err , "' nie powiodło się", "' przebiegło pomyślnie")
End If
End Sub
| Komunikat o pomyślnym utworzeniu nazwy oznacza tylko, że nazwa została zapisana, ale nie oznacza, że lokalizacja docelowa istnieje. To można sprawdzić funkcją Dir, ale czasem chcemy sobie wcześniej przygotować odwołania do danych, które jeszcze nie istnieją.
Odczyt_nazwy.xlsm
|
Pobierz Plik ściągnięto 402 raz(y) 17.85 KB |
Do_odczytu.xlsx
|
Pobierz Plik ściągnięto 387 raz(y) 9.2 KB |
|
|
 | ID posta:
319938
|
|
|
 |
|
|
|
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
|