Ten samouczek nauczy Cię, jak wchodzić w interakcję z wartościami komórek za pomocą VBA.
Ustaw wartość komórki
Aby ustawić wartość komórki, użyj właściwości Wartość obiektu Zakres lub Komórki.
Zakres.Wartość i komórki.Wartość
Istnieją dwa sposoby odwoływania się do komórek w VBA:
- Obiekt zakresu - Zakres („A2”). Wartość
- Obiekt komórek - Komórki (2,1).Wartość
Obiekt Range umożliwia odwołanie się do komórki przy użyciu standardowej notacji „A1”.
Spowoduje to ustawienie wartości zakresu A2 = 1:
1 | Zakres("A2").Wartość = 1 |
Obiekt Cells umożliwia odwoływanie się do komórki według numeru wiersza i numeru kolumny.
To ustawi wartość zakresu A2 = 1:
1 | Komórki(2,1).Wartość = 1 |
Zauważ, że najpierw wpisujesz numer wiersza:
1 | Komórki (numer_wiersza, numer_kolumny) |
Ustaw wartości wielu komórek naraz
Zamiast odwoływać się do pojedynczej komórki, możesz odwoływać się do zakresu komórek i jednocześnie zmieniać wszystkie wartości komórek:
1 | Zakres("A2:A5").Wartość = 1 |
Ustaw wartość komórki - tekst
W powyższych przykładach ustawiamy wartość komórki równą liczbie (1). Zamiast tego możesz ustawić wartość komórki równą ciągowi tekstu. W VBA cały tekst musi być otoczony cudzysłowami:
1 | Zakres("A2").Value = "Tekst" |
Jeśli nie otoczysz tekstu cytatami, VBA pomyśli, że odwołujesz się do zmiennej…
Ustaw wartość komórki - zmienna
Możesz także ustawić wartość komórki równą zmiennej
1234 | Dim strText jako StringstrText = "Ciąg tekstu"Zakres("A2").Value = strText |
Uzyskaj wartość komórki
Możesz uzyskać wartości komórek przy użyciu tej samej właściwości Value, której użyliśmy powyżej.
Uzyskaj wartość ActiveCell
Aby uzyskać wartość ActiveCell i wyświetlić ją w oknie komunikatu:
1 | MsgBox ActiveCell.Value |
Przypisz wartość komórki do zmiennej
Aby uzyskać wartość komórki i przypisać ją do zmiennej:
123 | Dim var jako wariantvar = Zakres("A1").Wartość |
Tutaj użyliśmy zmiennej typu Variant. Zmienne wariantów mogą akceptować dowolny typ wartości. Zamiast tego możesz użyć zmiennej typu String:
123 | Dim var jako Stringvar = Zakres("A1").Wartość |
Zmienna typu String akceptuje wartości liczbowe, ale przechowuje liczby jako tekst.
Jeśli wiesz, że wartość komórki będzie liczbowa, możesz użyć typu zmiennej podwójnej (zmienne podwójne mogą przechowywać wartości dziesiętne):
123 | Dim var jako Doublevar = Zakres("A1").Wartość |
Jeśli jednak spróbujesz zapisać wartość komórki zawierającą tekst w zmiennej podwójnej, otrzymasz błąd niezgodności typu:
Inne przykłady wartości komórek
Kopiuj wartość komórki
Łatwo ustawić wartość komórki równą wartości innej komórki (lub „Kopiuj” wartość komórki):
1 | Zakres("A1").Wartość = Zakres("B1").Wartość |
Możesz to zrobić nawet z zakresami komórek (zakresy muszą mieć ten sam rozmiar):
1 | Zakres("A1:A5").Wartość = Zakres("B1:B5").Wartość |
Porównaj wartości komórek
Możesz porównywać wartości komórek przy użyciu standardowych operatorów porównania.
Sprawdź, czy wartości komórek są równe:
1 | MsgBox Range("A1").Value = Range("B1").Value |
Zwróci TRUE, jeśli wartości komórek są równe. W przeciwnym razie FAŁSZ.
Możesz również utworzyć instrukcję If, aby porównać wartości komórek:
12345678910111213 | If Range("A1").Value > Range("B1").Value ThenZakres("C1").Value = "Większe niż"Elseif Range("A1").Value = Range("B1").Value ThenZakres("C1").Value = "Równe"W przeciwnym razieZakres("C1").Value = "Mniej niż"Zakończ, jeśli |
Możesz porównać tekst w ten sam sposób (pamiętaj, że VBA rozróżnia wielkość liter)