Niedawno musiałem skopiować niektóre dane do arkusza kalkulacyjnego, użyć formatu VBA, aby go sformatować, a następnie zapisać ten arkusz w pliku CSV. Używam następującego kodu:Jak zapisać plik CSV rozdzielany średnikiem, używając vba?
ws.SaveAs Filename:=filestr, Fileformat:=xlCSV
ws jest arkuszem roboczym, który zapisałem.
To daje mi plik CSV rozdzielany przecinkami.
Chciałbym jednak zapisać ten arkusz w pliku rozdzielanym średnikami. Zrobiłem niektóre googling i stwierdzono następujące rozwiązanie:
- przejdź do Start> Ustawienia> regionalne i językowe Opcje
- kliknąć na przycisk Dostosuj
- Dalej do listy typ separatora w średnikiem (;)
śledzę powyższe procedury i zmienił mojego kodu:
ws.SaveAs Filename:=filestr, Fileformat:=xlCSV, Local:=True
Ale stil Dostałem plik CSV rozdzielany przecinkami jako wynik.
wersji programu Excel używam jest Excel 2003, a mój system operacyjny to Windows XP
Czy ktoś może sugerować, jak zaoszczędzić średnikiem plik rozdzielany za pomocą VBA?
Oto sposób zrobienia tego ręcznie; http://stackoverflow.com/a/7079703/246342 zastąp separator przez ";" i zasięg z ActiveSheet.UsedRange –
Bardzo dziękuję za sugestię. Ale napotkałem problem, gdy próbowałem uruchomić twój kod. W arkuszu kalkulacyjnym mam pewną wartość, jak "1.0000000", a gdy jest ona przekształcona na ciąg przez "CStr (c.Value)", jest automatycznie zaokrąglana do "1". Czy możesz zasugerować, jak sobie z tym poradzić? Dzięki :) – user1758952
Aby zachować formatowanie należy zastąpić 'CStr (c.Value)' z 'c.text' –