Obecnie mam do czynienia z problemem, który bardzo mnie niepokoi. Mam nadzieję, że ktoś mi pomoże. Pracuję dla dużej firmy, w której używane są zarówno Office 2007 (32bit) i Office 2010 (64 bit). Pisanie makr do kompatybilności przez całą firmę było dla mnie trudnym zadaniem (nigdy wcześniej nie programowałem w VBA - w rzeczywistości to forum bardzo mi pomogło). Moim zadaniem jest utrzymanie jednego dużego stołu we współużytkowanym arkuszu Excela. Istnieje kilka makr i kilka postaci użytkowych. Teraz krótko opiszę problem: Arkusz zawiera dwie kolumny z formatem daty (data rozpoczęcia i data zamknięcia). Obie wartości są importowane do kolumn z pól tekstowych userform (przycisk poleceń MsCal -exported to class-, który wypełnia te pola tekstowe datą). Potrzebuję tylko formatu daty w mm/dd/rrrr w obu kolumnach, aby wykonać filtrowanie i inne operacje. Kiedy te wartości są aktualizowane przez pracownika korzystającego z innej lokalizacji niż angielska data USA jest wprowadzana jako dd.mm.rrrr. To sprawia, że prawidłowe filtrowanie na podstawie daty jest niemożliwe. Próbowałem zmienić formatowanie przez:Ten sam format daty w kilku lokalizacjach
UserForm1.TextBox10.Value = Format(Calendar1.Value, "mm/dd/yyyy")
ale ten fragment kodu źle się trzyma. Na niektórych komputerach działa, na niektórych nie działa. I to daje mi ból głowy. Jak powinienem kontynuować teraz? Czy istnieje sposób zmuszenia programu Excel do używania tego samego formatu daty w arkuszu i zignorowania ustawień lokalizacji w systemie Windows? Pracownicy nie chcą zmieniać lokalizacji na angielski w USA, ponieważ są albo przyzwyczajeni do ich formatu, albo potrzebują go do innych aplikacji. Czy istnieje sposób tymczasowej zmiany lokalizacji tylko po otwarciu tego arkusza? Każda rada zostanie zaakceptowana. Dzięki z gory Peter
Data w komórce programu Excel powinna być datą, a nie łańcuchem. Jeśli ustawisz format komórki na format daty poprzedzony gwiazdką * (co zwykle jest pierwszymi 2 opcjami w opcji Formatuj komórki/datę), wówczas data zmieni się na lokalne formatowanie daty użytkownika. Podstawową komórką jest jednak nadal numer dateserial, który powinien być użyteczny niezależnie od formatu. Jeśli chcesz wpisać daty w polu tekstowym lub przekonwertować ciągi na daty, to jest to inna sprawa i wymagana jest dodatkowa obsługa. Zobacz http://stackoverflow.com/questions/12495504/how-to-convert-a-string-into-date/12497237#12497237 – user3357963
@PeterT. W tabeli kolumna dat jest sformatowana jako tekst lub jako daty? – CaBieberach
Utworzony jako Data – PeterT