ID tematu: 76115
 |
Ustawienia separatorów Excela w VBA |
Autor |
Wiadomość |
Maciej Gonet
Excel Expert

Wersja: Win Office 365
Pomógł: 3616 razy Posty: 10635
|
Wysłany: 18-09-2024, 15:59 Ustawienia separatorów Excela w VBA
|
|
|
Jeśli wymiennie posługujemy się Excelem i VBA możemy spotkać się z problemem niezgodności separatorów w liczbach i wyrażeniach w obu tych środowiskach. O ile w danych i formułach VBA te separatory są ustawione na stałe, to w wynikach może już wystąpić pewna dowolność, szczególnie gdy chcemy umieścić je w arkuszu. W samym arkuszu - ze względu na zróżnicowane wersje językowe panuje już duża swoboda, która nierzadko prowadzi do konfliktów.
Zagadnienie jest dość złożone i niektóre konflikty trudno rozwiązać, ale przygotowałem krótki tekst, w którym próbuję objaśnić, przynajmniej w zarysie, w jaki sposób możemy kontrolować użycie separatorów z poziomu VBA.
Ustawienia separatorów w VBA.docx
|
Pobierz Plik ściągnięto 36 raz(y) 22.37 KB |
|
|
 | ID posta:
437027
|
|
|
 |
|
|
|
Rafał B.
ExcelSpec


Wersja: Win Office 2021
Pomógł: 91 razy Posty: 524
|
Wysłany: 20-09-2024, 10:07
|
|
|
Żeby ten wywód był praktycznie przydatny, to konieczne jest zaznaczenie, że te wbudowane implementacje związane z separatorami zawierają niestety błędy, które uwidaczniają się sporadycznie na systemach i wersjach Office z niestandardowymi separatorami (np. ";" zamiast ",") np. Polska, Niemcy.
Był gdzieś taki temat Artika, niestety nie mogę znaleźć. Ale też sam kiedyś wpadłem w tę pułapkę, gdzie losowo separator listy działał, a czasem nie działał Problem z listą rozwijalną (tylko zamiast takich fikołków jak w tym moim temacie dziś pewnie użyłbym po prostu jakiegoś On Error...). |
_________________ W erze zaawansowanych narzędzi LLM takich jak GPT 50% problemów użytkowników forum może być efektywnie rozwiązanych przez nich samych za pomocą tych narzędzi. Jednak często bardziej cenią swój czas niż czas tych, którzy oferują tutaj pomoc. |
|
 | ID posta:
437035
|
|
|
 |
|
|
Maciej Gonet
Excel Expert

Wersja: Win Office 365
Pomógł: 3616 razy Posty: 10635
|
Wysłany: 21-09-2024, 11:40
|
|
|
Mam świadomość, że mogą występować w VBA błędy z prawidłową identyfikacją separatora listy, jeśli w Excelu używany jest średnik, a nie przecinek (jak standardowo w VBA). Użytkownicy z Niemiec, Francji, a także u nas Rafał B. sygnalizowali problem, że czasem VBA oczekuje użycia separatora lokalnego (średnika) zamiast przecinka. Czasem takie działanie VBA jest wiązane z definiowaniem hiperłączy (kolejność operacji miałaby wpływać na to jakiego separatora oczekuje VBA). Jednak wszyscy zaznaczają, że te problemy występują losowo i trudno jest je odtworzyć. Ja używam obecnie Excela 365, mam też staruszka 2007, wersje polskie, zawsze w środowisku Windows i w tych konfiguracjach nie zauważyłem opisywanego problemu. Dlatego trudno mi się do niego odnieść szczegółowo.
Mamy natomiast problem, gdy chcemy za pomocą VBA w europejskiej wersji Excela zdefiniować kontrolę poprawności, wykorzystując listę rozdzielaną separatorami. Jeśli na tej liście mają być liczby z separatorem dziesiętnym, to VBA sobie z tym nie radzi. Jeśli definiujemy to ręcznie – jednorazowo w Excelu, nie ma problemu. Natomiast VBA stosuje zamianę separatorów „w locie”, co prowadzi do konfliktu i uniemożliwia poprawne wykonanie operacji. Co ciekawe, próbowałem również zarejestrować skrypt automatyzacji (choć się na tym mało znam) i efekt jest taki sam jak w VBA.
Można znaleźć obejścia tego problemu, ale niedoskonałe, niestety. Napiszę o tym osobny post. |
|
 | ID posta:
437046
|
|
|
 |
|
|
|
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
|