Vba kullanarak bir hücreye değer nasıl girilir?
Önemli Notlar
- Value özelliği her iki yönde de kullanılabilir (bir hücreden değer okuyup yazabilirsiniz).
- Bir hücre değeri ayarlamak için (aynı zamanda almak ve düzenlemek için) Hücreler ve Aralık Nesnesini kullanarak bir hücreye başvurabilirsiniz .
Hücre değerini ayarla
Hücre değerini ayarlamak için “Değer” özelliğini kullanmanız, ardından ayarlamak istediğiniz değeri ayarlamanız gerekir. Burada bunu anlamanıza yardımcı olmak için bazı örnekler kullandım.
1. Hücreye bir değer girin
A1 hücresine “Bitti” değerini girmeniz gerektiğini varsayalım. Bu durumda kod aşağıdaki gibi olacaktır:
Range("A1").Value = "Done"
Gördüğünüz gibi önce değer eklemek istediğim hücrenin adresini, ardından değer özelliğini ayarlıyorum. Sonunda, “Bitti” değerini çift tırnak içinde eşittir işareti “=” kullanarak atadım.
Aşağıdaki kod gibi “Hücreler” özelliğini de kullanabilirsiniz.
Cells(1, 1).Value = "Done"
Yukarıdaki kod aynı zamanda A1 hücresine de atıfta bulunur.
Bunun dışında kullanabileceğiniz bir yol daha var o da value özelliğini kullanmayarak değeri doğrudan hücreye atamaktır.
Cells(1, 1) = "Done"
Ancak hücreye değer girmek için value özelliğinin kullanılması önerilir.
Şimdi bir hücreye bir sayı girmek istediğinizi varsayalım. Bu durumda çift tırnak kullanmanıza gerek yoktur. Kodu aşağıdaki gibi yazabilirsiniz.
Range("A1") = 99
Ayrıca VBA kodunu kullanarak bir hücreye tarih veya zaman damgası girmek için TARİH ve ŞİMDİ ( VBA İşlevleri ) de kullanabilirsiniz.
Range("A1").Value = Date Range("A2").Value = Now
Aktif hücreye bir değer girmek istiyorsanız ihtiyacınız olan kod şöyle olacaktır:
ActiveCell.Value = Date
2. Giriş kutusunu kullanma
Kullanıcının hücreye girilecek değeri belirtmesini istiyorsanız giriş kutusunu kullanabilirsiniz. A1 hücresine değer girmek istediğinizi varsayalım, kod şöyle görünecektir:
Range("A1").Value = _ InputBox(Prompt:="Type the value you want enter in A1.")
Yukarıdaki kodda A1 hücresinin değeri, kullanıcının girdiği değeri döndüren giriş kutusunun döndürdüğü değere atanmaktadır.
3. Başka bir hücreden
Hücre değerini başka bir hücrenin değerini kullanarak da ayarlayabilirsiniz. Diyelim ki B1 hücresinden A1 hücresine değer eklemek istiyorsunuz, kod şöyle olacaktır:
Range("A1") = Range("B1").Value
Value özelliğini kullanmadan da B1 hücresine başvurabilirsiniz.
Range("A1") = Range("B1")
4. Değeri tüm aralıkta ayarlayın
Tek bir hücre yerine birden fazla hücreye veya hücre aralığına değer girmek istediğinizi düşünün, bu durumda aşağıdaki gibi bir kod yazmanız gerekiyor:
Range("A1:A10").Value = Date Range("B1, B10").Value = Now
Kodun ilk satırında A1 hücresinden A10’a kadar tüm aralık bulunur ve ikinci satırda iki B1 ve B10 hücresi vardır.
Hücre değerini al
Söylediğim gibi, bir hücrenin değerini elde etmek için aynı değer özelliğini kullanabilirsiniz.
1. ActiveCell’in değerini alın
Diyelim ki aktif hücrenin değerini almak istiyorsunuz, bu durumda aşağıdaki kodu kullanmanız gerekiyor.
ActiveCell.Value = Range("A1")
Yukarıdaki kodda, etkin hücrede değer özelliğini kullandınız ve ardından bu değeri A1 hücresine atadınız.
2. Bir değişkene atayın
Ayrıca bir hücreden bir değer alıp bunu bir değişkene atayabilirsiniz.
Şimdi yukarıdaki kodda veri türü olarak date olan “i” değişkenine sahipsiniz. Kodun ikinci satırında A1 hücresinin değeri değişkene atanır.
3. Mesaj Kutusunda Görüntüleme
Şimdi bir mesaj kutusu kullanarak A1 hücresinin değerini görüntülemek istediğinizi düşünün. Bu durumda kod aşağıdaki gibi olacaktır.
MsgBox Range("A1").Value
Yukarıdaki kodda mesaj kutusu A1 hücresindeki değeri alıp kullanıcıya gösterecektir.
Hücre değerini değiştir
Ayrıca bir hücre değerinde de değişiklik yapabilirsiniz, burada bunu anlamanıza yardımcı olabilecek bazı örnekleri paylaştım.
1. Mevcut bir numaraya numara ekleyin
Diyelim ki A1 hücresindeki sayıya bir tane daha eklemek istiyorsanız aşağıdaki kodu kullanabilirsiniz.
Range("A1").Value = Range("A1").Value + 1
Yukarıdaki kod, A1 hücresinin değerini alıp ona bir ekleyerek A1 hücresine bir değer atar. Ancak, yalnızca hücrede bir sayı olduğunda değiştirilecek bir koşulu yazmak için VBA IF THEN ELSE komutunu da kullanabilirsiniz.
If IsNumeric(Range("A1").Value) Then Range("A1").Value = Range("A1").Value + 1 End If
2. Hücredeki ilk karakteri silin
Şimdi aşağıdaki kod, hücre değerinden ilk karakteri kaldırır ve değerin geri kalanını hücreye atar.
Range("A1").Value = Right(Range("A1").Value, Len(Range("A1").Value) - 1)