Hücre değeri değiştiğinde makro değerlerini güncelle


0

Hücre 6 sütunlarından değer alan ve onay kutusunun işaretli veya işaretli olmadığına bağlı olarak 8 veya 9 sütuna ekleyen bir makro içeren bir onay kutusu denetimim var. Bu makro:

Public Sub CB_Read()

Dim oShape As Shape
Dim oTarget As Range
Dim iTarget As Range

Set oShape = ActiveSheet.Shapes(Application.Caller)
'Change the "Offset(Row,Column)" in the next line to whatever cell is desired for the status of the checkbox.
Set StdRate = oShape.TopLeftCell.Offset(0, 6)
Set oTarget = oShape.TopLeftCell.Offset(0, 8)
Set iTarget = oShape.TopLeftCell.Offset(0, 9)


If oShape.ControlFormat.Value = xlOff Then
    iTarget.Value = StdRate.Value * [cityIndex]
    oTarget.Value = ""
Else
    oTarget.Value = StdRate.Value * [cityIndex]

    iTarget.Value = ""
End If

End Sub

Şimdi [cityIndex] adlı hücredeki değer değiştiğinde, onay kutusunu kullanmak zorunda kalmadan güncellenen ofset sütunlarındaki değerleri (iTarget.Value ve oTarget.Value) istiyorum.


1
Etkinlik için bir işlev yazmayı denediniz Private Sub Worksheet_Change(ByVal Target As Range)mi?
Kenneth L

Yanıtlar:


0

Bir yol, cityindex hücresinin değerine bakıp ofseti buna göre değiştiren bir VBA işlevi oluşturmak olacaktır.

Tam olarak bunun nasıl yapılacağı cityindex hücresine ne koyduğuna bağlı. Eğer bir sayı ise, o zaman muhtemelen doğru sütunu elde etmek için bu sayıyı baz ofsetine ekleyebilirsiniz. Metin ise, bir arama yapmanız gerekecek - şehirler çok fazla değişmezse, kodda doğru şekilde yapmak muhtemelen en kolay olanıdır, aksi takdirde bir çalışma sayfasındaki arama tablosuna ihtiyacınız olacak ve vlookup üzerinde.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.