Poniżej przyjrzymy się programowi w Excel VBA że zapisuje zakres Excela do pliku tekstowego CSV (wartości rozdzielane przecinkami).
Sytuacja:
Umieść przycisk polecenia w arkuszu i dodaj następujące wiersze kodu:
1. Najpierw deklarujemy zmienną o nazwie myFile typu String, obiekt o nazwie rng typu Range, zmienną o nazwie cellValue typu Variant, zmienną o nazwie i typu Integer oraz zmienną o nazwie j typu Integer. Używamy tutaj zmiennej Variant, ponieważ zmienna Variant może przechowywać dowolny typ wartości.
Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer
2. Musimy podać pełną ścieżkę i nazwę pliku.
myFile = Application.DefaultFilePath & „\sales.csv”
Uwaga: właściwość DefaultFilePath zwraca domyślną ścieżkę pliku. Aby zmienić domyślną lokalizację pliku, na karcie Plik kliknij Opcje, Zapisz.
3. Inicjujemy obiekt zakresu rng z wybranym zakresem.
Ustaw rng = Wybór
4. Dodaj następującą linię kodu:
Otwórz myFile do wyprowadzenia jako #1
Uwaga: to oświadczenie pozwala na zapisanie pliku. W dalszej części kodu możemy odwoływać się do pliku jako #1. Jeśli plik już istnieje, zostanie usunięty i utworzony zostanie nowy plik o tej samej nazwie.
5. Uruchom podwójną pętlę.
For i = 1 To rng.Rows.Count
Dla j = 1 To rng.Columns.Count
Uwaga: rng.Rows.Count zwraca liczbę wierszy (17 w tym przykładzie), a rng.Columns.Count zwraca liczbę kolumn (4 w tym przykładzie).
6. Excel VBA zapisuje wartość komórki do zmiennej cellValue.
cellValue = rng.Cells(i, j).Value
7. Dodaj następujące wiersze kodu, aby zapisać wartość cellValue w pliku tekstowym.
Jeśli j = rng.Kolumny.Liczba Wtedy
Napisz #1, komórkaValue
W przeciwnym razie
Napisz #1, cellValue,
Zakończ, jeśli
Wyjaśnienie: ze względu na instrukcję If Then Else, Excel VBA uruchamia nowy wiersz (Write #1, cellValue), gdy j jest równe liczbie kolumn (ostatnia wartość w wierszu). Aby oddzielić wartości przecinkiem, użyj Write #1, cellValue (z przecinkiem).
8. Nie zapomnij zamknąć obu pętli.
Następny j
Dalej ja
9. Zamknij plik.
Zamknij #1
10. Wybierz dane i kliknij przycisk polecenia na arkuszu.
Wynik: