Offset kullanımının temel amacı nedir ?

Katılım
3 Mayıs 2020
Mesajlar
2
Excel Vers. ve Dili
Excel 2016
Öncelikle merhaba, Henüz yeni yeni Excelde makro uygulamaları eğitimi alıyorum ancak Offset kullanımı iyi anlatılamamış, kullanım amacını ve pekiştereceğim bir kod var mı acaba ?
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Offset bir hücreden belirli sayıda hücre sağa ve aşağıya gitmemizi sağlayan komuttur.

Başlangıç hücresinin adresi Offset(0,0)'dır.

Örneğin A1 hücresinden 3 satır aşağıya ve 2 sütun sağa gitmemizi

[A1].Offset(3,2)

komutu ile sağlarız. Bu komutun karşılığı C4 hücresidir.

Negatif değerler de kullanılabilir. Örneğin D5 hücresinin 2 satır yukarısı ve 1 sütun solu için

[D5].Offset(-2,-1)

komutu ile sağlarız. Bu komutun karşılığı C3 hücresidir.

Örnek olarak aşağıdaki kodu sayfanın kod bölümüne yapıştırırsanız, A sütununa sayı girildiğinde D sütununa 5 katını yazar, metin girildiğinde eğer metin uzunluğu 3 ve fazla ise ilk 3 karakteri yazar, değilse hata yazar, boşsa boş bırakır:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A1:A100]) Is Nothing Then Exit Sub
If Target = "" Then
    Target.Offset(0, 3) = ""
ElseIf IsNumeric(Target) Then
    Target.Offset(0, 3) = Target * 5
ElseIf Len(Target) >= 3 Then
    Target.Offset(0, 3) = Left(Target, 3)
Else
    Target.Offset(0, 3) = "Hata"
End If
End Sub
 
Katılım
3 Mayıs 2020
Mesajlar
2
Excel Vers. ve Dili
Excel 2016
Offset bir hücreden belirli sayıda hücre sağa ve aşağıya gitmemizi sağlayan komuttur.

Başlangıç hücresinin adresi Offset(0,0)'dır.

Örneğin A1 hücresinden 3 satır aşağıya ve 2 sütun sağa gitmemizi

[A1].Offset(3,2)

komutu ile sağlarız. Bu komutun karşılığı C4 hücresidir.

Negatif değerler de kullanılabilir. Örneğin D5 hücresinin 2 satır yukarısı ve 1 sütun solu için

[D5].Offset(-2,-1)

komutu ile sağlarız. Bu komutun karşılığı C3 hücresidir.

Örnek olarak aşağıdaki kodu sayfanın kod bölümüne yapıştırırsanız, A sütununa sayı girildiğinde D sütununa 5 katını yazar, metin girildiğinde eğer metin uzunluğu 3 ve fazla ise ilk 3 karakteri yazar, değilse hata yazar, boşsa boş bırakır:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A1:A100]) Is Nothing Then Exit Sub
If Target = "" Then
    Target.Offset(0, 3) = ""
ElseIf IsNumeric(Target) Then
    Target.Offset(0, 3) = Target * 5
ElseIf Len(Target) >= 3 Then
    Target.Offset(0, 3) = Left(Target, 3)
Else
    Target.Offset(0, 3) = "Hata"
End If
End Sub
Çok teşekkür ederim, elinize sağlık :)
 
Üst