Stworzyłem swój pierwszy niemodalny UserForm w Excelu i umieściłem na nim etykietę ActiveX. Jak ustawić podpis etykiety tak, aby wyświetlał to, co znajduje się w Sheet1.Range("A1"), i aktualizował się, gdy zmieni się wartość w komórce A1?

Zasadniczo chcę, aby etykieta Userform's była zawsze aktualizowana przy drugiej zmianie w komórce Excela. Dziękuję Ci!

5
phan 28 lipiec 2011, 16:11

2 odpowiedzi

Najlepsza odpowiedź
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Cells(1, 1), Target) Is Nothing Then
        Exit Sub
    End If
    UserForm1.Label1.Caption = Sheet1.Range("A1").Value
End Sub

Sub Change jest wywoływany za każdym razem, gdy zmienia się komórka. Kod robi to: jeśli A1 został zmieniony, zmień podpis Label1 na UserForm1. Formularz musi być otwarty niemodalnie (vbModeless).

UserForm1.Show vbModeless
5
Jacob 28 lipiec 2011, 16:27
Cześć cularis, dzięki za niesamowicie szybką odpowiedź! To zadziałało dla mnie.
 – 
phan
28 lipiec 2011, 16:28

To działało dla mnie.

Sheets("Sheet").Shapes("TheNameOfTheLabel").TextFrame.Characters.Text = "Hello"
1
moberme 16 grudzień 2015, 01:52