VBA'da yeni seçenek düğmesini tam olarak konumlandırın


0

VBA'da veya bir makroda yeni bir seçenek düğmesini tam olarak konumlandırmanın ve boyutlandırmanın bir yolu var mı?

Kullandığım kod, içinde çalışma hücresinin seçili olduğu yeni bir Seçenek düğmesi ekliyor.

Daha sonra kodu tekrar çalıştırırsanız, tam olarak birincinin üstüne 2. bir düğme ekler.

Ayrıca, Seçenek Düğmeleri boyutunu seçilen hücrenin boyutuna ayarlar.

Yapmam gereken şey, kod içinde yeni Seçenek Düğmesinin eklenmesini istediğim hücreyi, F15'i belirtmek ve düğmenin tam boyutunu ve sol / sağ / yukarı / aşağı konumunu ayarlamak.

Bu, Seçenek düğmesinin her zaman aynı hücreye, aynı konumda ve her zaman aynı boyutta yerleştirilmesidir.

Bu yapılabilir mi?

Yeni Seçenek Düğmesini oluşturma / ekleme kodu:

Sub AddOptionButton()
    With ActiveSheet.OptionButtons.Add(Selection.Left, Selection.Top, 
Selection.Width, Selection.Height)
        .Name = "NewOptionButton"
        .Caption = "Green"
    End With
End Sub

Yanıtlar:


0

Genel olarak, koddaki seçimleri kullanmaktan kaçınmak istersiniz.

Aralığı bir değişkene atayabilir ve düğmeyi içine yerleştirebilirsiniz:

Sub AddOptionButton()
    Dim myRange as Range

    Set myRange = Range("C3")
    With ActiveSheet.OptionButtons.Add(myRange.Left, myRange.Top, myRange.Width, myRange.Height)
        .Name = "NewOptionButton"
        .Caption = "Green"
    End With
End Sub

Ancak menzili bir işleve geçirmek daha iyi olabilir:

Function AddOptionButton(myRange as Range)
    With ActiveSheet.OptionButtons.Add(myRange.Left, myRange.Top, myRange.Width, myRange.Height)
        .Name = "NewOptionButton"
        .Caption = "Green"
    End With
End Function

Telefonunuzdaki herhangi bir yerden arayabileceğiniz Sub:

Call AddOptionButton(Range("F15"))

İyi görünüyor ve deneyeceğim ama lütfen bunu sorduğumda cehaletimi bağışla - myRange nedir? değiştirmem gereken bir şey mi yoksa onu olduğu gibi mi kullanmalıyım?
Kenny,

MyRangebir değişkendir. Bunu şöyle beyan edebilirsiniz: Dim myRange as Range(bunu yansıtacak şekilde düzenlenmiş cevap)
cybernetic.nomad

FunctionDönüş değerini kullanmayan A , a Sub, imo olmalıdır . Bir işlev argüman alabilmesi gerçeğiyle tanımlanmaz, bir değer / nesne döndürme kabiliyeti ile tanımlanır. Subs sadece iyi argümanlar alabilir. Öyleyse yap Sub AddOptionButton(myRange as Range) ya da yarattığı düğmeye bir referans ver Function AddOptionButton(myRange as Range) as OptionButton. Ayrıca, Callifade gerekli değildir, bu yüzden AddOptionButton Range("F15")son satırda yazabilirsiniz .
Inarion
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.