Làm th? nào đ? s? d?ng Visual Basic for Applications (VBA) đ? thay đ?i UserForms trong Excel

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 829070 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này mô t? cách thay đ?i UserForms l?p tr?nh trong Microsoft Excel. Nó bao g?m các ví d? và Microsoft Visual Basic for Applications (VBA) macro mà cho b?n th?y làm th? nào đ? có l?i th? c?a các kh? năng c?a UserForms và làm th? nào đ? s? d?ng các đi?u khi?n ActiveX ™ có s?n cho UserForms.

Gi?i thi?u v? các nguyên t?c cơ b?n c?a UserForms mô t? làm th? nào đ? hi?n th? UserForms, làm th? nào đ? t?m th?i ?n UserForms và làm th? nào đ? b? qua UserForms. B?n c?ng đư?c hi?n th? làm th? nào đ? s? d?ng các s? ki?n ph? bi?n nh?t là liên k?t v?i UserForms — các Kh?i t?o s? ki?n, các Nh?p vào s? ki?n, và các Ch?m d?t s? ki?n. M?t ho?c m?t s? ví d? sau đây ch?ng minh làm th? nào đ? s? d?ng m?i c?a các đi?u khi?n ActiveX ™ sau đây trong m?t UserForm:
  • Nh?n hi?u ki?m soát
  • TextBox ki?m soát
  • CommandButton ki?m soát
  • ListBox ki?m soát
  • ComboBox ki?m soát
  • Khung ki?m soát
  • OptionButton ki?m soát
  • H?p ki?m ki?m soát
  • ToggleButton ki?m soát
  • TabStrip ki?m soát
  • MultiPage ki?m soát
  • Thanh cu?n ki?m soát
  • SpinButton ki?m soát
  • RefEdit ki?m soát
  • H?nh ?nh ki?m soát

GI?I THI?U

Bài vi?t này mô t? cách s? d?ng VBA đ? th?c hi?n nh?ng thay đ?i trong UserForms trong Excel.

THÔNG TIN THÊM

Microsoft cung c?p l?p tr?nh ví d? đ? minh ho? ch?, không có b?o hành ho?c th? hi?n hay ng? ?. Đi?u này bao g?m, nhưng không gi?i h?n, b?o đ?m ng? ? kh? năng bán hàng ho?c cho m?t m?c đích c? th?. Bài vi?t này gi? đ?nh r?ng b?n đ? quen thu?c v?i ngôn ng? l?p tr?nh mà đang đư?c ch?ng minh và v?i nh?ng công c? đư?c s? d?ng đ? t?o ra và g? l?i th? t?c. Microsoft h? tr? các k? sư có th? giúp gi?i thích các ch?c năng c?a m?t th? t?c c? th?, nhưng h? s? không s?a đ?i nh?ng ví d? đ? cung c?p thêm ch?c năng ho?c xây d?ng quy tr?nh đ? đáp ?ng các yêu c?u c? th? c?a b?n.

UserForm khái ni?m cơ b?n

Làm th? nào đ? hi?n th? m?t UserForm

Cú pháp đư?c s? d?ng đ? hi?n th? m?t UserForm l?p tr?nh sau đây:
UserFormName.Hi?n th?
Đ? hi?n th? m?t UserForm đư?c đ?t theo tên UserForm1, s? d?ng sau đây M? s?:
UserForm1.Show
B?n có th? t?i m?t UserForm vào b? nh? mà không th?c s? hi?n th? nó. Có th? m?t m?t UserForm ph?c t?p m?t vài giây đ? xu?t hi?n. B?i v? b?n có th? preload m?t UserForm vào b? nh?, b?n có th? quy?t đ?nh khi nào ph?i ch?u chi phí này. Đ? t?i UserForm1 vào b? nh? mà không c?n hi?n th? nó, s? d?ng m? sau đây:
Load UserForm1
Đ? hi?n th? UserForm, b?n ph?i s? d?ng cácHi?n th? phương pháp trư?c đó đư?c hi?n th?.

Làm th? nào đ? t?m th?i ?n m?t UserForm

N?u b?n mu?n t?m th?i ?n m?t UserForm, s? d?ng các?n phương pháp. B?n có th? mu?n ?n m?t UserForm n?u ?ng d?ng c?a b?n liên quan đ?n vi?c di chuy?n t? UserForms. Đ? ?n m?t UserForm, s? d?ng m? sau đây:
UserForm1.Hide
Đ? bi?t thêm chi ti?t, b?m vào s? bài vi?t sau đây đ? xem bài vi?t trong các ki?n th?c Microsoft Cơ s?:
213747XL2000: Làm th? nào đ? di chuy?n gi?a các tu? ch?nh UserForms v?i nút l?nh

Làm th? nào đ? h?y b? m?t UserForm t? b? nh?

Đ? lo?i b? m?t UserForm b? nh?, s? d?ng cácL?y tuyên b?. Đ? l?y m?t UserForm đư?c đ?t theo tên UserForm1, s? d?ng các m? sau đây:
Unload UserForm1
N?u b?n l?y m?t UserForm trong m?t th? t?c s? ki?n đó là liên k?t v?i m?t UserForm ho?c đó là liên k?t v?i m?t đi?u khi?n trên m?t UserForm (ví d?, b?n nh?p vào m?tCommandButton đi?u khi?n), b?n có th? s? d?ng "Tôi" t? khóa thay v? c?a tên c?a các UserForm. Đ? s? d?ng "Tôi" t? khóa đ? l?y m?t UserForm, s? d?ng m? sau đây:
Unload Me

Làm th? nào đ? s? d?ng các s? ki?n UserForm

UserForms h? tr? nhi?u s? ki?n đư?c xác đ?nh trư?c, b?n có th? đính kèm VBA th? t?c đ?. Khi s? ki?n x?y ra, các th? t?c mà b?n g?n li?n v?i các s? ki?n ch?y. M?t hành đ?ng đơn l? đư?c th?c hi?n b?i m?t ngư?i dùng có th? b?t đ?u nhi?u các s? ki?n. Trong s? thư?ng xuyên nh?t đư?c s? d?ng các s? ki?n cho m?t UserForm là các Kh?i t?o s? ki?n, các Nh?p vào s? ki?n, và các Ch?m d?t s? ki?n.

Chú ý M?t mô-đun Visual Basic có ch?a m?t th? t?c s? ki?n có th? đư?c g?i là m?t mô-đun "đ?ng sau" UserForm. M?t mô-đun có ch?a các s? ki?n th? t?c không ph?i là đư?c nh?n th?y trong các Mô-đun b? sưu t?p c?a c?a s? Microsoft d? án Explorer c?a th? giác Biên t?p viên cơ b?n. B?n ph?i nh?p đúp vào cơ th? c?a m?t UserForm đ? xem UserForm M? mô-đun.

Làm th? nào đ? b?y các s? ki?n UserForm

Đ? b?y các s? ki?n UserForm, h?y làm theo các bư?c sau:
  1. T?o m?t b?ng tính m?i trong Excel.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. B?m đúp vào các UserForm đ? hi?n th? các M? c?a s? cho UserForm.
  5. Trong mô-đun, h?y nh?p m? sau đây:
    Private Sub UserForm_Click()
    
        Me.Height = Int(Rnd * 500)
        Me.Width = Int(Rnd * 750)
    
    End Sub
    
    Private Sub UserForm_Initialize()
    
        Me.Caption = "Events Events Events!"
        Me.BackColor = RGB(10, 25, 100)
    
    End Sub
    
    Private Sub UserForm_Resize()
    
        msg = "Width: " & Me.Width & Chr(10) & "Height: " & Me.Height
        MsgBox prompt:=msg, Title:="Resize Event"
    
    End Sub
    
    
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    
        msg = "Now Unloading " & Me.Caption
        MsgBox prompt:=msg, Title:="QueryClose Event"
    
    End Sub
    
    Private Sub UserForm_Terminate()
    
        msg = "Now Unloading " & Me.Caption
        MsgBox prompt:=msg, Title:="Terminate Event"
    
    End Sub
  6. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
Khi UserForm đ?u tiên c?t cánh, v? mô s? d?ng các Kh?i t?o s? ki?n đ? thay đ?i các Chú thích tài s?n c?a UserForm đ? "S? ki?n s? ki?n s? ki?n!" và các BackColor b?t đ?ng s?n đ? màu xanh đ?m.

Khi b?n b?m vào UserForm, b?n b?t đ?u các Nh?p vào s? ki?n. Các Nh?p vào s? ki?n l?i kích thư?c UserForm. Do b?n t?o ra m?t th? t?c các Thay đ?i kích c? s? ki?n, b?n nh?n đư?c hai thư h?p sau khi b?n nh?p chu?t vào các UserForm. Các Thay đ?i kích c? s? ki?n x?y ra hai l?n v? m? đ?ng sau các Nh?p vào s? ki?n thay đ?i c? các Chi?u r?ng b?t đ?ng s?n và các Chi?u cao tài s?n c?a UserForm.

Đóng c?a UserForm kh?i s? QueryClose s? ki?n. Các QueryClose s? ki?n s? hi?n th? m?t h?p thư có ch?a các chú thích mà b?n đ? cho UserForm trong các m? cho các Kh?i t?o s? ki?n. B?n có th? s? d?ng các QueryClose s? ki?n khi b?n mu?n th?c hi?n m?t b? hành đ?ng n?u nh?ng ngư?i dùng đóng UserForm.

Các Ch?m d?t s? ki?n sau đó t?o ra m?t h?p thông báo r?ng các chú thích UserForm là UserForm1. Các Ch?m d?t s? ki?n x?y ra sau khi UserForm đư?c l?y ra t? b? nh? và các chú thích c?a UserForm tr? v? tr?ng thái ban đ?u c?a nó.

Làm th? nào đ? ngăn ch?n m?t UserForm đang đư?c đóng l?i b?ng cách s? d?ng nút đóng

Khi b?n ch?y m?t UserForm, m?t Đóng nút đư?c thêm đ?n góc bên ph?i c?a c?a s? UserForm. N?u b?n mu?n ngăn ch?n các UserForm t? đang đư?c đóng l?i b?ng cách s? d?ng các Đóng nút, b?n ph?i cái b?y các QueryClose s? ki?n.

Các QueryClose s? ki?n x?y ra ngay trư?c khi UserForm là b? n?p t? b? nh?. S? d?ng các CloseMode đ?i s? c?a các QueryClose s? ki?n đ? xác đ?nh như th? nào UserForm s? đư?c đóng l?i. Các vbFormControlMenu giá tr? cho các CloseMode đ?i s? ch? ra r?ng các Đóngnút đư?c nh?p. Đ? gi? cho UserForm ho?t đ?ng, đ?t các H?y b? đ?i s? c?a các QueryClose s? ki?n đ? S? th?t. S? d?ng các QueryClose s? ki?n đ? ngăn ch?n m?t UserForm đang đư?c đóng l?i b?ng cách s? d?ng các Đóng nút, h?y làm theo các bư?c sau:
  1. T?o m?t b?ng tính m?i trong Excel.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t CommandButton ki?m soát đ? UserForm.
  5. B?m đúp vào các UserForm đ? hi?n th? các M? c?a s? cho UserForm.
  6. Trong c?a s? m?, g? m? sau đây:
    Private Sub CommandButton1_Click()
    
        Unload Me
    
    End Sub
    
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    
        IF CloseMode = vbFormControlMenu Then
            Cancel = True
            Me.Caption = "Click the CommandButton to close Me!"
        End If
    
    End Sub
  7. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
UserForm không ph?i là đóng c?a khi b?n b?m các Đóng nút. B?n ph?i b?m vào các CommandButton ki?m soát đ? đóng UserForm.

Đ? bi?t thêm chi ti?t, b?m vào các s? bài vi?t sau đ? xem các bài vi?t trong cơ s? ki?n th?c Microsoft:
207714XL2000: Th?i gian ch?y l?i b?ng cách s? d?ng b? sưu t?p UserForms
211527 XL2000: Không th? kéo ki?m soát UserForm vào m?t b?ng
211868 XL2000: L?i ch?y v? mô chèn ki?m soát vào UserForm
213582 XL2000: V?n đ? khi b?n s? d?ng macro thêm quy?n ki?m soát vào UserForm
213583 XL2000: Không th? hi?n th? UserForms trong các d? án khác
213736 XL2000: Làm th? nào đ? xác đ?nh các khóa ép cùng v?i nút chu?t
213744 XL2000: Làm th? nào đ? t?m th?i ?n m?t UserForm
213747 XL2000: Làm th? nào đ? di chuy?n gi?a các tu? ch?nh UserForms v?i nút l?nh
213749 XL2000: làm th? nào s? d?ng m?t UserForm đ? nh?p d? li?u
213768 XL2000: Làm th? nào đ? t? đ?ng thay đ?i kích thư?c m?t h?nh th?c s? d?ng
213774 XL2000: Làm th? nào đ? t?o ra m?t màn h?nh kh?i đ?ng v?i m?t UserForm

VBA m?

Excel bao g?m mư?i lăm đi?u khi?n khác nhau mà b?n có th? s? d?ng trên UserForms. Ti?t đo?n này ch?a nhi?u ví d? s? d?ng các đi?u khi?n l?p tr?nh.

Chú ý VBA m? đư?c bao g?m trong bài vi?t này không ch?a Ví d? mà ?nh hư?ng đ?n t?t c? các tài s?n và các s? ki?n cho các đi?u khi?n. N?u b?n ph?i, b?n có th? s? d?ng c?a s? Properties đ? xem danh sách các tài s?n mà có m?t đi?u khi?n. Đ? xem danh sách các thu?c tính, trên các Xem tr?nh đơn, nh?p vào C?a s? Properties.

Làm th? nào đ? s? d?ng thi?t k? ch? đ? ch?nh s?a đi?u khi?n

Khi b?n s? d?ng Visual Basic Editor đ? thi?t k? m?t h?p tho?i, b?n đang s? d?ng ch? đ? thi?t k?. Trong ch? đ? thi?t k?, b?n có th? ch?nh s?a các đi?u khi?n và b?n có th? thay đ?i các thu?c tính c?a m?t ki?m soát trên m?t UserForm trong c?a s? thu?c tính. Đ? hi?n th? c?a s? Properties, trên cácXem tr?nh đơn, nh?p vào C?a s? Properties.

Chú ý Đi?u khi?n không đáp ?ng các s? ki?n trong khi b?n đang ? ch? đ? thi?t k?. Khi b?n ch?y m?t h?p tho?i đ? hi?n th? nó cách ngư?i dùng nh?n th?y nó, chương tr?nh trong ch?y ch? đ?. Thay đ?i b?n th?c hi?n cho các thu?c tính c?a m?t đi?u khi?n trong ch?y ch? đ? không đư?c gi? l?i khi UserForm là b? n?p t? b? nh?.

Chú ý Đi?u khi?n đáp ?ng v?i các s? ki?n trong ch? đ? ch?y.

Làm th? nào đ? ch? đi?u khi?n trên m?t UserForm

Làm th? nào b?n đ? c?p đ?n đi?u khi?n l?p tr?nh ph? thu?c vào lo?i Visual Basic mô-đun t? nơi mà b?n ch?y các m?. N?u m? ch?y t? m?t mô-đun chung, cú pháp là như sau:
UserFormName.Controlname.Property = Giá trị
Ví d?, n?u b?n mu?n thi?t l?p cácVăn b?n tài s?n c?a m?t TextBox đi?u khi?n đư?c đ?t tên theo TextBox1 trên m?t UserForm đư?c đ?t tên UserForm1 v?i giá tr? c?a Bob, s? d?ng m? sau đây:
UserForm1.TextBox1.Text = "Bob"
N?u m? là m?t th? t?c đư?c kh?i xư?ng b?i m?t s? ki?n ki?m soát c?a m?t ho?c b?i UserForm, b?n không ph?i đ? c?p đ?n tên c?a UserForm. Thay vào đó, s? d?ng m? sau đây:
TextBox1.Text = "Bob"
Khi b?n đính kèm m? vào m?t đ?i tư?ng, m? đư?c g?n vào m?t trong các s? ki?n c?a đ?i tư?ng đó. Trong nhi?u ví d? trong bài vi?t này, b?n đính kèm m? đ? cácNh?p vào s? ki?n c?a các CommandButton đ?i tư?ng.

Nh?n đi?u khi?n

Nh?n hi?u đi?u khi?n đư?c s? d?ng ch? y?u đ? mô t? các đi?u khi?n khác vào m?t UserForm. Một Nh?n hi?u đi?u khi?n không th? biên t?p b?i ngư?i s? d?ng trong khi UserForm ch?y. S? d?ng các Chú thích b?t đ?ng s?n đ? đ?t ho?c quay tr? l?i các văn b?n trong m?t Nh?n hi?u ki?m soát. Khác thư?ng xuyên s? d?ng thu?c tính cho các đ?nh d?ng m?t Nh?n hi?u đi?u khi?n bao g?m các Phông ch? b?t đ?ng s?n và các ForeColor b?t đ?ng s?n.

Làm th? nào đ? s? d?ng m?t tuyên b? v?i đ?nh d?ng m?t đi?u khi?n Label

S? d?ng các V?I tuyên b? đ? thay đ?i các thu?c tính c?a m?t Nh?n hi?u ki?m soát, th?c hi?n theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t Nh?n hi?u ki?m soát đ? UserForm.
  5. Thêm m?t CommandButton ki?m soát đ? UserForm.
  6. B?m đúp vào các CommandButton ki?m soát đ? m? c?a s? m? cho UserForm.
  7. Trong c?a s? m?, g? m? sau đây cho các B?m vào CommandButton1 s? ki?n:
    Private Sub CommandButton1_Click()
    
        With Label1
            ' Set the text of the label.
            .Caption = "This is Label Example 1"
            ' Automatically size the label control.
            .AutoSize = True
            .WordWrap = False
            ' Set the font used by the Label control.
            .Font.Name = "Times New Roman"
            .Font.Size = 14
            .Font.Bold = True
            ' Set the font color to blue.
            .ForeColor = RGB(0, 0, 255)
        End With
    
    End Sub
  8. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
  9. B?m vào các CommandButton.
Các văn b?n "Đây là nh?n ví d? 1" xu?t hi?n trên các Nh?n hi?u ki?m soát trong đ?m Times New Roman v?i m?t kích thư?c phông ch? 14.

Đi?u khi?n TextBox

TextBox đi?u khi?n thư?ng đư?c s? d?ng đ? t?p h?p đ?u vào t? ngư?i dùng. Các Văn b?n b?t đ?ng s?n có ch?a các m?c đư?c th?c hi?n t?i m?t TextBox ki?m soát.

Làm th? nào đ? s? d?ng m?t h?p ki?m soát đ? xác nh?n m?t kh?u

N?u b?n đ?t các PasswordChar tài s?n c?a m?t TextBox ki?m soát, nó s? tr? thành m?t đi?u khi?n "che-edit". M?i nhân v?t mà là đánh máy trong các TextBox ki?m soát đư?c thay th? tr?c quan b?ng các k? t? mà b?n ch? đ?nh. S? d?ng m?t TextBox đi?u khi?n đ? xác nh?n m?t kh?u, h?y làm theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t TextBox ki?m soát đ? UserForm.
  5. Trên các Xem tr?nh đơn, nh?p vàoThu?c tính đ? làm cho c?a s? thu?c tính có th? nh?n th?y.
  6. Trong các PasswordChar tài s?n c?a các TextBox ki?m soát, lo?i *.

    Chú ý B?n đang thay đ?i giá tr? đ? d?u sao.
  7. Thêm m?t CommandButton ki?m soát đ? UserForm.
  8. B?m đúp vào các CommandButton ki?m soát đ? m? c?a s? m? cho UserForm.
  9. Trong c?a s? m?, g? m? sau đây cho các B?m vào CommandButton1 s? ki?n:
    Private Sub CommandButton1_Click()
    
        If TextBox1.Text <> "userform" Then
            MsgBox "Password is Incorrect. Please reenter."
            TextBox1.Text = ""
            TextBox1.SetFocus
        Else
            MsgBox "Welcome!"
            Unload Me
        End If
    
    End Sub
    
    
  10. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
  11. G? m?t kh?u userform trong các TextBox ki?m soát.
  12. B?m vào các CommandButtonki?m soát.
Ví d? này, m?t kh?u này là "userform". N?u b?n g? m?t m?t kh?u không chính xác, b?n nh?n đư?c m?t h?p thư mà các ti?u bang r?ng m?t kh?u c?a b?n là không chính xác, các TextBox đi?u khi?n s? b? xóa, và sau đó b?n có th? g? l?i m?t kh?u. Khi b?n g? m?t kh?u chính xác, b?n nh?n đư?c m?t thông đi?p chào m?ng và UserForm là đóng c?a.

Đ? bi?t thêm chi ti?t, b?m vào s? bài vi?t sau đây đ? xem bài vi?t trong các ki?n th?c Microsoft Cơ s?:
213555XL2000: Không có tài s?n xác nh?n d? li?u cho UserForm TextBoxes

Đi?u khi?n CommandButton

B?n có th? s? d?ng m?t CommandButton ki?m soát đ? b?t đ?u m?t th? t?c VBA. Th? t?c VBA là đi?n h?nh g?n li?n v?i các Nh?p vào s? ki?n c?a các CommandButton ki?m soát. S? d?ng m?t CommandButton ki?m soát mà ch?y m?t th? t?c khi các Nh?p vào s? ki?n x?y ra, h?y làm theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t CommandButton ki?m soát đ? UserForm.
  5. B?m đúp vào các CommandButton ki?m soát đ? hi?n th? c?a s? m? cho UserForm.
  6. Trong c?a s? m?, g? m? sau đây:
    Private Sub CommandButton1_Click()
    
        red = Int(Rnd * 255)
        green = Int(Rnd * 255)
        blue = Int(Rnd * 255)
        CommandButton1.BackColor = RGB(red, green, blue)
    
    End Sub 
  7. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
Màu n?n c?a các CommandButton1ki?m soát thay đ?i m?i khi b?n nh?p vào nó.

Đ? thêm thông tin v? các CommandButton đi?u khi?n, nh?p vào s? bài vi?t sau đ? xem các bài vi?t trong Microsoft Knowledge Base:
213572XL2000: Nh?p nút h?y b? có th? không b? qua UserForm
213743 XL2000: Làm th? nào đ? đ?t nút l?nh m?c đ?nh trên m?t UserForm

Đi?u khi?n ListBox

M?c đích c?a các ListBox ki?m soát là đ? cho ngư?i dùng v?i m?t danh sách các kho?n m?c đ? ch?n t?. B?n có th? lưu tr? danh sách m?c cho m?t ListBox ki?m soát trên m?t b?ng tính Excel. Đ? cư trú m?t ListBox ki?m soát v?i m?t lo?t các t? bào trên m?t b?ng tính, s? d?ng các RowSource b?t đ?ng s?n. Khi b?n s? d?ng các MultiSelect b?t đ?ng s?n, b?n có th? thi?t l?p m?t ListBox ki?m soát đ? ch?p nh?n ch?n nhi?u.

Làm th? nào đ? có đư?c kho?n m?c đư?c ch?n hi?n th?i t? ki?m soát ListBox

S? d?ng các Giá trị tài s?n c?a m?t ListBox ki?m soát đ? tr? v? kho?n m?c đư?c ch?n hi?n th?i. Đ? tr? v? các kho?n m?c đ? ch?n hi?n th?i trong m?t l?a ch?n duy nh?t ListBox ki?m soát, th?c hi?n theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trong các t? bào A1:A5 trên Sheet1, nh?p các giá tr? mà b?n mu?n s? d?ng đ? cư trú các ListBox ki?m soát.
  3. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  4. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  5. Thêm m?t ListBox ki?m soát đ? UserForm.
  6. B?m đúp vào các ListBox ki?m soát đ? hi?n th? c?a s? m? cho các ListBox ki?m soát.
  7. Trong c?a s? m?, g? m? sau đây cho các B?m vào ListBox1 s? ki?n:
    Private Sub ListBox1_Click()
    
        MsgBox ListBox1.Value
    
    End Sub 
  8. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
Khi b?n ch?n m?t kho?n m?c trong danh sách, m?t h?p thông đi?p s? xu?t hi?n v?i kho?n m?c đ? ch?n hi?n th?i.

Làm th? nào đ? có đư?c các kho?n m?c đư?c ch?n trong m?t đi?u khi?n ListBox ch?n nhi?u

Đ? xác đ?nh các kho?n m?c đư?c ch?n trong m?t l?a ch?n nhi?u ListBox ki?m soát, b?n ph?i l?p qua t?t c? các m?c trong danh sách, và sau đó truy v?n các Đư?c ch?n b?t đ?ng s?n. Đ? tr? v? các kho?n m?c đ? ch?n hi?n th?i trong m?t nhi?u ch?n ListBox ki?m soát, th?c hi?n theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trong các t? bào A1:A5 trên Sheet1, nh?p các giá tr? mà b?n mu?n s? d?ng đ? cư trú các ListBox ki?m soát.
  3. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  4. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  5. Thêm m?t ListBox ki?m soát đ? UserForm.
  6. Trên các Xem tr?nh đơn, nh?p vàoThu?c tính đ? xem c?a s? Properties.
  7. Nh?p các giá tr? đư?c ch? đ?nh cho sau đây ListBox thu?c tính đi?u khi?n:
       Property	   Value
       -----------     -----------------------
       MultiSelect	   1 - frmMultiSelectMulti
       RowSource	   Sheet1!A1:A8
  8. Thêm m?t CommandButton ki?m soát đ? UserForm.
  9. B?m đúp vào các CommandButton ki?m soát đ? hi?n th? c?a s? m? cho UserForm.
  10. Trong c?a s? m?, g? m? sau đây cho các B?m vào CommandButton1 s? ki?n:
    Sub CommandButton1_Click ()
    
           ' Loop through the items in the ListBox.
           For x = 0 to ListBox1.ListCount - 1
    
              ' If the item is selected...
              If ListBox1.Selected(x) = True Then
    
                 ' display the Selected item.
                 MsgBox ListBox1.List(x)
              End If
           Next x
    
        End Sub 
  11. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
  12. Ch?n m?t ho?c nhi?u m?c trong danh sách.
  13. Nh?p vào CommandButton1.
Sau khi b?n nh?p CommandButton1, m?i m?c có b?n đ? ch?n trong các ListBox ki?m soát xu?t hi?n trong m?t h?p thông đi?p riêng bi?t. Sau khi t?t c? các l?a ch?n m?c xu?t hi?n trong m?t h?p thư, UserForm s? t? đ?ng đóng c?a.

Làm th? nào đ? s? d?ng tài s?n RowSource đ? cư m?t ListBox ki?m soát v?i các t? bào trên m?t b?ng

S? d?ng các RowSource b?t đ?ng s?n đ? cư trú m?t ListBox ki?m soát t? m?t lo?t các t? bào trên m?t b?ng tính, h?y làm theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trong các t? bào A1:A5 trên Sheet1, nh?p các giá tr? mà b?n mu?n s? d?ng đ? cư trú các ListBox ki?m soát.
  3. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  4. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  5. Thêm m?t ListBox ki?m soát đ? UserForm.
  6. Thêm m?t CommandButton ki?m soát đ? UserForm.
  7. B?m đúp vào các CommandButton ki?m soát đ? hi?n th? c?a s? m? cho UserForm.
  8. Trong c?a s? m?, g? m? sau đây cho các B?m vào CommandButton1 s? ki?n:
    Private Sub CommandButton1_Click()
        ListBox1.RowSource = "=Sheet1!A1:A5"
    End Sub 
  9. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.

    Chú ýListBox1 không ch?a b?t k? giá tr?.
  10. Nh?p vào CommandButton1.
ListBox1 là dân cư v?i các giá tr? trong các t? bào A1:A5 ngày Sheet1.

Làm th? nào đ? cư m?t ListBox ki?m soát v?i các giá tr? trong m?t m?ng

Ví d? này cho th?y b?n làm th? nào đ? cư m?t ListBox ki?m soát v?i m?t m?ng bi?n. B?n ph?i gán các giá tr? t? m?ng đ? các ListBox ki?m soát m?t m?c t?i m?t th?i đi?m. Thông thư?ng, quá tr?nh này đ?i h?i r?ng b?n s? d?ng m?t c?u trúc looping, ch?ng h?n như m?t Cho...Ti?p theo v?ng l?p. Đ? cư trú m?t ListBox ki?m soát v?i m?t m?ng bi?n, h?y làm theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t ListBox ki?m soát đ? UserForm.
  5. Trên các Chèn tr?nh đơn, nh?p vàoMô-đun đ? chèn m?t t? mô-đun.
  6. Trong c?a s? m?, g? m? sau đây:
    Sub PopulateListBox()
    
        Dim MyArray As Variant
        Dim Ctr As Integer
        MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")
        
        For Ctr = LBound(MyArray) To UBound(MyArray)
            UserForm1.ListBox1.AddItem MyArray(Ctr)
        Next
        
        UserForm1.Show
    
    End Sub 
  7. Trên các Công cụ tr?nh đơn, nh?p vàoMacro, b?m PopulateListBox, sau đó b?mCh?y.
Các PopulateListBox th? t?c xây d?ng m?t m?ng đơn gi?n, và sau đó thêm các kho?n m?c trong các m?ng đ? các ListBox đi?u khi?n b?ng cách s? d?ng các AddItem phương pháp. Sau đó, UserForm s? xu?t hi?n.

Làm th? nào đ? s? d?ng m?t t?m ho?t đ?ng ngang c?a các t? bào trên m?t b?ng đ? cư trú m?t đi?u khi?n ListBox

N?u b?n đ?t các RowSource tài s?n c?a m?t ListBox ki?m soát đ?n m?t lo?t các t? bào, ch? có giá tr? đ?u tiên ngang xu?t hi?n trong các ListBox ki?m soát.

Đ? cư trú m?t ListBox đi?u khi?n t? m?t lo?t ngang các t? bào b?ng cách s? d?ng các AddItem phương pháp, th?c hi?n theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trong các t? bào A1:E1 trên Sheet1, nh?p các giá tr? mà b?n mu?n s? d?ng đ? cư trú các ListBox ki?m soát.
  3. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  4. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  5. Thêm m?t ListBox ki?m soát đ? UserForm.
  6. Trên các Chèn tr?nh đơn, nh?p vàoMô-đun đ? chèn m?t t? mô-đun.
  7. Trong c?a s? m?, g? m? sau đây:
    Sub PopulateListWithHorizontalRange()
    
        For Each x In Sheet1.Range("A1:E1")
            UserForm1.ListBox1.AddItem x.Value
        Next
        
        UserForm1.Show
    
    End Sub
  8. Trên các Công cụ tr?nh đơn, nh?p vàoMacro, b?mPopulateListWithHorizontalRange, sau đó b?mCh?y.
Các v? mô th? t?c v?ng qua các t? bào A1:E5 trên Sheet1, thêm các giá tr? đ? ListBox1 m?t lúc.

Chú ýListBox1 không b? ràng bu?c các t? bào A1:E5 ngày Sheet1.

Làm th? nào đ? tr? l?i nhi?u giá tr? t? m?t đi?u khi?n ListBox là ràng bu?c đ? nhi?u c?t c?a d? li?u

B?n có th? đ?nh d?ng ListBox đi?u khi?n đ? hi?n th? nhi?u hơn m?t c?t c?a d? li?u. Đi?u này có ngh?a là các ListBox đi?u khi?n hi?n th? nhi?u hơn m?t m?c trên m?i d?ng c?a danh sách. Đ? tr? l?i nhi?u giá tr? t? kho?n m?c đ? ch?n trong danh sách, h?y làm theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Nh?p d? li?u sau vào các t? bào đư?c ghi trên Sheet1:

    Thu g?n b?ng nàyBung r?ng b?ng này
    A1: nămB1: vùngC1: bán hàng
    A2: 1996 B2: B?cC2: 140
    A3: 1996B3: NamC3: 210
    A4: 1997B4: B?cC4: 190
    A5: 1997B5: NamC5: 195
  3. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  4. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  5. Thêm m?t Nh?n hi?u ki?m soát đ? UserForm.
  6. Thêm m?t ListBox ki?m soát đ? UserForm.
  7. Nh?p chu?t ph?i vào các ListBox, sau đó b?mThu?c tính.
  8. G? ho?c ch?n các giá tr? đư?c ch? đ?nh cho các theo tính ch?t c?a các ListBox đi?u khi?n đư?c li?t kê trong b?ng sau:
       Property       Value
       ----------------------------
       BoundColumn     1
       ColumnCount     3
       ColumnHeads     True
       RowSource       Sheet1!A2:A5
  9. B?m đúp vào các ListBox ki?m soát đ? hi?n th? c?a s? m? cho các ListBox ki?m soát.
  10. Trong c?a s? m?, g? m? sau đây:
    Private Sub ListBox1_Change()
    
        Dim SourceData As Range
        Dim Val1 As String, Val2 As String, Val3 As String
        
        Set SourceRange = Range(ListBox1.RowSource)
        
        Val1 = ListBox1.Value
        Val2 = SourceRange.Offset(ListBox1.ListIndex, 1).Resize(1, 1).Value
        Val3 = SourceRange.Offset(ListBox1.ListIndex, 2).Resize(1, 1).Value
        
        Label1.Caption = Val1 & " " & Val2 & " " & Val3
    
    End Sub
  11. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
Khi b?n b?m vào m?c nh?p trong các ListBox ki?m soát, h?ng thay đ?i đ? hi?n th? t?t c? ba trong s? các m?c trong m?c nh?p này.

Làm th? nào đ? lo?i b? m?i kho?n m?c t? m?t ListBox ki?m soát mà b? ràng bu?c vào m?t b?ng

Đ? lo?i b? m?i kho?n m?c t? m?t ListBox ki?m soát mà b? ràng bu?c vào m?t b?ng, r? ràng giá tr? nh? lưu tr? trong các RowSource b?t đ?ng s?n. Đ? lo?i b? kho?n m?c t? m?t ListBox ki?m soát mà b? ràng bu?c vào m?t b?ng tính, h?y làm theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trong các t? bào A1:A5 trên Sheet1, nh?p các giá tr? mà b?n mu?n s? d?ng đ? cư trú các ListBox ki?m soát.
  3. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  4. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  5. Thêm m?t ListBox ki?m soát đ? UserForm.
  6. Nh?p chu?t ph?i vào các ListBox ki?m soát, và sau đó Nh?p vào Thu?c tính.
  7. Trong các RowSource b?t đ?ng s?n, lo?i Sheet1!A1:A5.
  8. Thêm m?t CommandButton ki?m soát đ? UserForm.
  9. B?m đúp vào các CommandButton ki?m soát đ? hi?n th? c?a s? m? cho các CommandButton ki?m soát.
  10. Trong c?a s? m?, g? m? sau đây cho các B?m vào CommandButton1 s? ki?n:
    Private Sub CommandButton1_Click()
    
        ListBox1.RowSource = ""
    
    End Sub
  11. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.

    Các ListBoxđi?u khi?n mà b?n thêm vào UserForm là dân cư v?i các các giá tr? mà b?n đ? nh?p vào Sheet1.
  12. Nh?p vào CommandButton1.
T?t c? các m?c đư?c g? b? kh?i ListBox1.

Làm th? nào đ? lo?i b? m?i kho?n m?c t? m?t ListBox ki?m soát mà không b? ràng bu?c vào m?t b?ng

Đó là không có l?nh VBA duy nh?t mà lo?i b? m?i kho?n m?c t? m?t ListBox ki?m soát n?u danh sách không b? ràng bu?c vào m?t b?ng tính. Đ? lo?i b? t?t c? các m?c t? m?t ListBox ki?m soát có dân cư t? m?t m?ng Visual Basic, làm theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t ListBox ki?m soát đ? UserForm.
  5. Trên các Chèn tr?nh đơn, nh?p vàoMô-đun đ? chèn m?t t? mô-đun.
  6. Trong c?a s? m?, g? m? sau đây:
    Sub PopulateListBox()
    
        Dim MyArray As Variant
        Dim Ctr As Integer
        MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")
        
        For Ctr = LBound(MyArray) To UBound(MyArray)
            UserForm1.ListBox1.AddItem MyArray(Ctr)
        Next
        
        UserForm1.Show
    
    End Sub 
  7. Thêm m?t CommandButton ki?m soát đ? UserForm.
  8. B?m đúp vào các CommandButton ki?m soát đ? hi?n th? c?a s? m? cho các CommandButton ki?m soát.
  9. Trong c?a s? m?, g? m? sau đây cho các B?m vào CommandButton1 s? ki?n:
    Private Sub CommandButton1_Click()
    
        For i = 1 To ListBox1.ListCount
            ListBox1.RemoveItem 0
        Next I
    
    End Sub
  10. Trên các Công cụ tr?nh đơn, nh?p vàoMacro, b?m PopulateListBox, sau đó b?mCh?y.

    Các ListBox ki?m soát có dân cư, và sau đó UserForm s? xu?t hi?n.
  11. Nh?p vào CommandButton1.
T?t c? các m?c đư?c g? b? kh?i ListBox1.

Cho thông tin thêm v? ki?m soát ListBox, b?m vào bài vi?t sau đây các con s? đ? xem các bài vi?t trong cơ s? ki?n th?c Microsoft:
161598OFF: Làm th? nào đ? thêm d? li?u vào m?t ComboBox ho?c ListBox trong Excel ho?c t?
211446 XL2000: B?t đ?ng s?n TextColumn hi?n th? ch? c?t đ?u tiên
211896 XL2000: Làm th? nào đ? mô ph?ng s? k?t h?p đi?u khi?n ch?nh s?a danh sách cho UserForms
211899 XL2000: V?n đ? thi?t đ? m?c c?t ListBox ki?m soát
213721 XL2000: Làm th? nào đ? lo?i b? m?i kho?n m?c t? m?t ListBox, ComboBox
213722 XL2000: Làm th? nào đ? s? d?ng tài s?n TextColumn
213723 XL2000: Làm th? nào đ? tr? v? các giá tr? t? h?p danh sách hi?n th? nhi?u c?t
213746 XL2000: làm th? nào đ? đi?n vào h?p danh sách ki?m soát v?i các nhi?u
213748 XL2000: làm th? nào đ? cư trú m?t h?p danh sách d?a trên m?t h?p danh sách
213752 XL2000: S? d?ng phương pháp AddItem gây ra l?i khi RowSource là d? li?u ràng bu?c
213756 XL2000: S? d?ng phương pháp RemoveItem v?i ListBox ho?c ComboBox ki?m soát
213759 XL2000: làm th? nào đ? xác đ?nh nh?ng kho?n m?c đư?c ch?n trong m?t h?p danh sách

Đi?u khi?n ComboBox

B?n có th? s? d?ng các ComboBox ki?m soát như m?t h?p th? xu?ng danh sách, ho?c là m?t h?p combo nơi b?n có th? ch?n m?t giá tr? trong danh sách ho?c nh?p m?t giá tr? m?i. Các Phong cách b?t đ?ng s?n s? xác đ?nh n?u các ComboBox ki?m soát ho?t đ?ng như m?t h?p th? xu?ng danh sách ho?c m?t h?p combo.

Chú ý T?t c? các ví d? trong ph?n trư?c cho các ListBox đi?u khi?n c?ng có th? đư?c áp d?ng cho các ComboBox ki?m soát, ngo?i tr? các "làm th? nào đ? có đư?c các kho?n m?c đư?c ch?n trong m?t Ví d? nhi?u ch?n ListBox ki?m soát".

Làm th? nào đ? thêm m?t m?c m?i vào danh sách n?u ki?m soát ComboBox không b? ràng bu?c vào m?t b?ng

Khi b?n nh?p m?t giá tr? là không đ? có trong danh sách theo các ComboBox ki?m soát, b?n có th? mu?n thêm giá tr? m?i vào danh sách. Đ? thêm các m?i giá tr? mà b?n g? vào các ComboBox ki?m soát n?u các ComboBox đi?u khi?n không b? ràng bu?c đ? b?ng tính, h?y làm theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t ComboBox ki?m soát đ? UserForm.
  5. Trên các Chèn tr?nh đơn, nh?p vàoMô-đun đ? chèn m?t t? mô-đun.
  6. Trong c?a s? m?, g? m? sau đây:
    Sub PopulateComboBox()
    
         Dim MyArray As Variant
         Dim Ctr As Integer
         MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")
        
         For Ctr = LBound(MyArray) To Ubound(MyArray)
             UserForm1.ComboBox1.AddItem MyArray(Ctr)
         Next
        
         UserForm1.Show
    
     End Sub
  7. Thêm m?t CommandButton ki?m soát đ? UserForm.
  8. B?m đúp vào các CommandButton ki?m soát đ? hi?n th? c?a s? m? cho các CommandButton ki?m soát.
  9. Trong c?a s? m?, g? m? sau đây cho các B?m vào CommandButton1 s? ki?n:
    Private Sub CommandButton1_Click()
    
         Dim listvar As Variant
         
         listvar = ComboBox1.List
        
         On Error Resume Next
         ' If the item is not found in the list...
         If IsError(WorksheetFunction.Match(ComboBox1.Value, listvar, 0)) Then
             ' add the new value to the list.
             ComboBox1.AddItem ComboBox1.Value
         End If
    
     End Sub
  10. Trên các Công cụ tr?nh đơn, nh?p vàoMacro, b?m PopulateListBox, sau đó b?mCh?y.

    Các ComboBox ki?m soát có dân cư, và sau đó UserForm s? xu?t hi?n.
  11. Trong các ComboBox ki?m soát, lo?i Xoài (ho?c b?t k? giá tr? mà đang không đư?c danh sách).
  12. Nh?p vào CommandButton1.
Giá tr? m?i b?n đ? g? bây gi? xu?t hi?n ? cu?i danh sách.

Làm th? nào đ? thêm m?t m?c m?i vào danh sách n?u ki?m soát ComboBox b? ràng bu?c vào m?t b?ng

Khi m?t ngư?i s? d?ng các lo?i m?t giá tr? là không đ? có trong danh sách theo các ComboBox ki?m soát, b?n có th? mu?n thêm giá tr? m?i vào danh sách. Đ? thêm các m?i giá tr? mà b?n g? vào các ComboBox ki?m soát vào danh sách, h?y làm theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trong các t? bào A1:A5 trên Sheet1, nh?p các giá tr? mà b?n mu?n s? d?ng đ? cư trú các ComboBox ki?m soát.
  3. Ch?n các t? bào A1:A5 ngày Sheet1.
  4. Trên các Chèn tr?nh đơn, đi?m đ?nTên, sau đó b?m Xác đ?nh.

    Trong cácTên trong b?ng tính h?p, lo?i ListRange , sau đó b?m Ok. Đi?u này t?o ra tên đư?c xác đ?nh ListRange. B?n có th? dùng tên đư?c xác đ?nh ListRange đ? ràng bu?c các RowSource tài s?n c?a các ComboBox đi?u khi?n b?ng tính.
  5. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  6. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  7. Thêm m?t ComboBox ki?m soát đ? UserForm.
  8. Trong các Thu?c tính cho ComboBox1, lo?i Sheet1!ListRange như cácRowSource b?t đ?ng s?n.
  9. Thêm m?t CommandButton ki?m soát đ? UserForm.
  10. B?m đúp vào các CommandButton ki?m soát đ? hi?n th? c?a s? m? cho các CommandButton ki?m soát.
  11. Trong c?a s? m?, g? m? sau đây cho các B?m vào CommandButton1 s? ki?n:
    Private Sub CommandButton1_Click()
    
        Dim SourceData As Range
        Dim found As Object
        
        Set SourceData = Range("ListRange")
        Set found = Nothing
        ' Try to find the value on the worksheet.
        Set found = SourceData.Find(ComboBox1.Value)
        
        ' If the item is not found in the list...
        If found Is Nothing Then
            ' redefine ListRange.
            SourceData.Resize(SourceData.Rows.Count + 1, 1).Name = "ListRange"
            ' Add the new item to the end of the list on the worksheet.
            SourceData.Offset(SourceData.Rows.Count, 0).Resize(1, 1).Value _
             = ComboBox1.Value
            ' Reset the list displayed in the ComboBox.
            ComboBox1.RowSource = Range("listrange").Address(external:=True)
        End If
    
    End Sub
  12. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.

    UserForm s? xu?t hi?n trên Sheet1.
  13. Trong các ComboBox ki?m soát, nh?p m?t giá tr? là không đ? có trong danh sách.
  14. Nh?p vào CommandButton1.
M?i các m?c mà b?n đ? nh?p trong các ComboBox đi?u khi?n s? đư?c thêm vào danh sách, và danh sách mà các ComboBox ki?m soát là ràng bu?c đ? đư?c m? r?ng đ? bao g?m các t? bào A1:A6.

Làm th? nào đ? hi?n th? danh sách ki?m soát ComboBox m?t khi xu?t hi?n UserForm

Đôi khi, nó có th? h?u ích đ? hi?n th? trong danh sách c?a m?t ComboBox đi?u khi?n khi UserForm m?t l?n đ?u tiên xu?t hi?n. Ví d? sau s? d?ng các Kích ho?t s? ki?n UserForm. Hi?n th? danh sách c?a m?t ComboBox ki?m soát, th?c hi?n theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trong các t? bào A1:A5 trên Sheet1, nh?p các giá tr? mà b?n mu?n s? d?ng đ? cư trú các ComboBox ki?m soát.
  3. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  4. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  5. Thêm m?t ComboBox ki?m soát đ? UserForm.
  6. Trong các Thu?c tính cho ComboBox1, lo?i Sheet1!A1:A5 như cácRowSource b?t đ?ng s?n.
  7. B?m đúp vào các UserForm đ? hi?n th? các M? c?a s? cho UserForm.
  8. Trong c?a s? m?, g? m? sau đây cho các CommandButton Click s? ki?n:
    Private Sub UserForm_Activate()
    
               ComboBox1.DropDown
    
           End Sub
  9. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
UserForm xu?t hi?n trên Sheet1, và b?n có th? xem danh sách cho ComboBox1.

Làm th? nào đ? hi?n th? danh sách m?t ComboBox đi?u khi?n khi b?n th?c hi?n m?t s? l?a ch?n trong m?t ComboBox ki?m soát

Đ? t? đ?ng hi?n th? trong danh sách c?a m?t ComboBox đi?u khi?n khi l?a ch?n m?t làm khác ComboBox ki?m soát, th?c hi?n theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trong các t? bào A1:A10 trên Sheet1, nh?p các giá tr? mà b?n mu?n s? d?ng đ? cư trú các ComboBox ki?m soát.
  3. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  4. Trên các Chèn tr?nh đơn, nh?p vàoMô-đun.
  5. Trong c?a s? m? cho các mô-đun, h?y nh?p m? sau đây:
    Sub DropDown_ComboBox()
    
        UserForm1.ComboBox2.DropDown
    
    End Sub
  6. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  7. Thêm m?t ComboBox ki?m soát đ? UserForm.
  8. Trong các Thu?c tính cho ComboBox1, lo?i Sheet1!A1:A5 như cácRowSource b?t đ?ng s?n.
  9. B?m đúp vào các ComboBox đi?u khi?n đ? m? c?a s? m? cho các ComboBox ki?m soát.
  10. Trong c?a s? m? cho các ComboBox ki?m soát, g? m? sau đây cho các B?m vào ComboBox s? ki?n:
    Private Sub ComboBox1_Click()
    
        Application.OnTime Now, "DropDown_ComboBox"
    
    End Sub
  11. Thêm m?t l?n th? hai ComboBox ki?m soát đ? UserForm.
  12. Trong các Thu?c tính cho ComboBox2, lo?i Sheet1!A6:A10 như cácRowSource b?t đ?ng s?n.
  13. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
Khi b?n ch?n m?t kho?n m?c trong các ComboBox1 danh sách, danh sách cho ComboBox2 t? đ?ng xu?t hi?n.

Đ? thêm thông tin v? ki?m soát ComboBox, nh?p vào s? bài vi?t sau đ? xem các bài vi?t trong cơ s? ki?n th?c Microsoft:
161598OFF: Làm th? nào đ? thêm d? li?u vào m?t ComboBox ho?c ListBox trong Excel ho?c t?
211446 XL2000: B?t đ?ng s?n TextColumn hi?n th? ch? c?t đ?u tiên
211899 XL2000: V?n đ? thi?t đ? m?c c?t ListBox ki?m soát
213717 XL2000: Th?i gian ch?y l?i b?ng cách s? d?ng phương pháp th? xu?ng v?i m?t ComboBox
213718 XL2000: Làm th? nào đ? hi?n th? m?t danh sách ComboBox khi m?t UserForm hi?n th?
213721 XL2000: Làm th? nào đ? lo?i b? m?i kho?n m?c t? m?t ListBox, ComboBox
213722 XL2000: Làm th? nào đ? s? d?ng tài s?n TextColumn
213752 XL2000: S? d?ng phương pháp AddItem gây ra l?i khi d? li?u RowSource là ràng bu?c
213756 XL2000: S? d?ng phương pháp RemoveItem v?i ListBox ho?c ComboBox ki?m soát

Khung h?nh đi?u khi?n

S? d?ng m?t Khung ki?m soát nhóm m?t cách h?p l? liên quan đ?n m?c trong m?t UserForm. Khung đi?u khi?n thư?ng đư?c s? d?ng cho nhóm OptionButton đi?u khi?n.

Làm th? nào đ? l?p qua t?t c? các đi?u khi?n trên m?t đi?u khi?n khung

S? d?ng m?t Cho Each…Ti?p theo v?ng l?p đ? truy c?p vào t?t c? các đi?u khi?n trong m?t Khung ki?m soát, th?c hi?n theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t Khung ki?m soát đ? UserForm.
  5. Thêm m?t OptionButton ki?m soát đ? các Khung ki?m soát.

    L?p l?i bư?c này đ? thêm hai b? OptionButton ki?m soát trong các Khung ki?m soát.
  6. B?m đúp vào các Khung đi?u khi?n đ? m? các M? c?a s? cho các Khung ki?m soát.
  7. Trong c?a s? m?, g? m? sau đây cho các B?m vào khung s? ki?n:
    Private Sub Frame1_Click()
    
        Dim Ctrl As Control
        
        For Each Ctrl In Frame1.Controls
            Ctrl.Enabled = Not Ctrl.Enabled
        Next
    
    End Sub
  8. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
  9. Trong UserForm, b?m các Khungki?m soát.
L?n đ?u tiên b?n nh?p vào các Khung ki?m soát, t?t c? các đi?u khi?n ? các Khung đi?u khi?n không s?n dùng. N?u b?n b?m vào các Khungki?m soát m?t l?n n?a, các đi?u khi?n có s?n m?t l?n n?a.

OptionButton ki?m soát

B?n có th? s? d?ng các nhóm OptionButton đi?u khi?n đ? th?c hi?n m?t trong nh?ng l?a ch?n trong s? các nhóm l?a ch?n. B?n có th? s? d?ng m?t trong các k? thu?t sau đây đ? nhóm OptionButton đi?u khi?n:
  • Khung ki?m soát
  • GroupName b?t đ?ng s?n
Chú ý Các Ngày giá tr?, các Có giá tr?, và các S? th?t giá tr? ch? ra r?ng m?t OptionButton đư?c ch?n. Các T?t giá tr?, các Không giá tr?, và các Sai giá tr? ch? ra r?ng m?t OptionButton không đư?c ch?n.

Làm th? nào đ? xác đ?nh s? ki?m soát OptionButton đư?c ch?n khi đi?u khi?n OptionButton trên m?t đi?u khi?n khung

Khi b?n nhóm OptionButtons đi?u khi?n b?ng cách s? d?ng m?t Khung ki?m soát, b?n có th? xác đ?nh các OptionButton đi?u khi?n đư?c ch?n b?i vi?c l?p qua t?t c? các đi?u khi?n ? các Khung ki?m soát và ki?m tra các Giá trị b?t đ?ng s?n ki?m soát m?i. Đ? xác đ?nh các OptionButton đi?u khi?n đư?c ch?n, h?y làm theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t Khung ki?m soát đ? UserForm.
  5. Thêm m?t OptionButton ki?m soát đ? các Khung ki?m soát.

    L?p l?i bư?c này đ? thêm hai b? OptionButton ki?m soát trong các Khung ki?m soát.
  6. Thêm m?t CommandButton đi?u khi?n trên UserForm bên ngoài các Khung ki?m soát.
  7. B?m đúp vào các CommandButton ki?m soát đ? hi?n th? c?a s? m? cho UserForm.
  8. Trong c?a s? m?, g? m? sau đây cho các B?m vào CommandButton1 s? ki?n:
    Private Sub CommandButton1_Click()
    
         For Each x In Frame1.Controls
             If x.Value = True Then
                 MsgBox x.Caption
             End If
         Next
    
     End Sub
  9. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
  10. Trong các UserForm, b?m vào m?t trong OptionButton ki?m soát, và sau đó nh?p vàoCommandButton1.
M?t h?p thông đi?p s? xu?t hi?n có ch?a các chú thích c?a các hi?n nay đư?c ch?n OptionButton ki?m soát.

Làm th? nào đ? xác đ?nh s? ki?m soát OptionButton đư?c ch?n

M?c đích c?a ví d? sau là đ? xác đ?nh các OptionButton đi?u khi?n đư?c ch?n trong Group1. Đ? t?o ra m?t UserForm có hai nhóm OptionButton đi?u khi?n, h?y làm theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t Khung ki?m soát đ? UserForm.
  5. Thêm m?t OptionButton ki?m soát trong các Khung ki?m soát.

    L?p l?i bư?c này đ? thêm hai b? OptionButton ki?m soát trong các Khung ki?m soát.
  6. Đ?i v?i m?i OptionButton ki?m soát, lo?i Group1 trong các GroupName b?t đ?ng s?n.
  7. L?p l?i bư?c 4 và 5 đ? t?o ra m?t l?n th? hai Khung ki?m soát có ch?a ba OptionButton đi?u khi?n.
  8. Đ?i v?i m?i OptionButton ki?m soát trong l?n th? hai Khung ki?m soát, lo?i Group2 trong các GroupName b?t đ?ng s?n.
  9. Thêm m?t CommandButton đi?u khi?n trên UserForm bên ngoài các Khung đi?u khi?n.
  10. B?m đúp vào các CommandButton ki?m soát đ? hi?n th? c?a s? m? cho UserForm.
  11. Trong c?a s? m?, g? m? sau đây cho các B?m vào CommandButton1 s? ki?n:
    Private Sub CommandButton1_Click()
    
         Dim x As Control
         
         ' Loop through ALL the controls on the UserForm.
         For Each x In Me.Controls
             ' Check to see if "Option" is in the Name of each control.
             If InStr(x.Name, "Option") Then
                 ' Check Group name.
                 If x.GroupName = "Group1" Then
                     ' Check the status of the OptionButton.
                     If x.Value = True Then
                         MsgBox x.Caption
                         Exit For
                     End If
                 End If
             End If
         Next
    
     End Sub
  12. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
  13. Trong UserForm, b?m vào m?t trong OptionButton ki?m soát trong Group1, và sau đó nh?p vàoCommandButton1.
M?t h?p thông đi?p s? xu?t hi?n có ch?a các chú thích c?a các OptionButton đi?u khi?n đư?c ch?n hi?n th?i.

Đ? thêm thông tin v? OptionButton đi?u khi?n, nh?p vào s? bài vi?t sau đây đ? xem bài vi?t trong Microsoft Knowledge Base:
213724XL2000: V?n đ? b?ng cách s? d?ng TripleState b?t đ?ng s?n cho tùy ch?n nút

Ki?m soát h?p ki?m

B?n có th? s? d?ng m?t H?p ki?m đi?u khi?n đ? ch? ra m?t giá tr? đúng hay sai. Một H?p ki?m ki?m soát xu?t hi?n v?i m?t d?u ki?m trong nó cho th?y m?t giá tr? c?a S? th?t. Một H?p ki?m mà xu?t hi?n không có d?u ch? ra m?t giá tr? c?a Sai. N?u giá tr? c?a các TripleState b?t đ?ng s?n là S? th?t, m?t H?p ki?m đi?u khi?n c?ng có th? có m?t giá tr? c?a Null. Một H?p ki?m ki?m soát có giá tr? b?ng Null dư?ng như là không có s?n.

Chú ý Các Ngày giá tr?, các Có giá tr?, và các S? th?t giá tr? ch? ra r?ng m?t H?p ki?m đi?u khi?n đư?c ch?n. Các T?t giá tr?, các Không giá tr?, và các Sai giá tr? ch? ra r?ng m?t H?p ki?m đi?u khi?n s? b? xóa.

Làm th? nào đ? ki?m tra giá tr? m?t h?p ki?m soát

S? d?ng các Giá trị b?t đ?ng s?n đ? tr? v? giá tr? hi?n t?i c?a m?t H?p ki?m ki?m soát, th?c hi?n theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t H?p ki?m ki?m soát đ? UserForm.
  5. Trong danh sách tài s?n cho CheckBox1, ch?n S? th?t như các TripleState b?t đ?ng s?n.
  6. B?m đúp vào các H?p ki?m ki?m soát đ? hi?n th? c?a s? m? cho các H?p ki?m ki?m soát.
  7. Trong c?a s? m?, g? m? sau đây cho các Thay đ?i CheckBox1 s? ki?n:
    Private Sub CheckBox1_Change()
    
        Select Case CheckBox1.Value
            Case True
                CheckBox1.Caption = "True"
            Case False
                CheckBox1.Caption = "False"
            Case Else
                CheckBox1.Caption = "Null"
        End Select
    
    End Sub
  8. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
Khi b?n b?m vào các H?p ki?m đi?u khi?n, các chú thích c?a các H?p ki?m ki?m soát nh?ng thay đ?i đ? ph?n ánh giá tr? hi?n t?i.

ToggleButton ki?m soát

Một ToggleButton ki?m soát có s? xu?t hi?n tương t? như m?t CommandButton ki?m soát cho đ?n khi b?n nh?p vào nó. Khi b?n b?m vào m?t ToggleButton ki?m soát, nó xu?t hi?n đ? đư?c ép hay b? đ?y xu?ng. Các Giá trị tài s?n c?a m?t ToggleButton ki?m soát là S? th?t khi nút đư?c ch?n và Sai khi nút không đư?c ch?n. N?u giá tr? c?a các TripleState b?t đ?ng s?n là S? th?t, m?t ToggleButton đi?u khi?n c?ng có th? có m?t giá tr? c?a Null. Một ToggleButton ki?m soát có giá tr? b?ng Null dư?ng như là không có s?n.

Chú ý Các Ngày giá tr?, các Có giá tr?, và các S? th?t giá tr? ch? ra r?ng m?t ToggleButton đi?u khi?n đư?c ch?n. Các T?t giá tr?, các Không giá tr?, và các Sai giá tr? ch? ra r?ng m?t ToggleButton đi?u khi?n không đư?c ch?n.

Làm th? nào đ? có đư?c giá tr? c?a m?t đi?u khi?n ToggleButton

Đ? có đư?c giá tr? c?a m?t ToggleButton ki?m soát, th?c hi?n theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t ToggleButton đi?u khi?n trên UserForm.
  5. Thêm m?t Nh?n hi?u ki?m soát đ? UserForm.
  6. B?m đúp vào các ToggleButton ki?m soát đ? m? c?a s? m? cho các ToggleButton ki?m soát.
  7. Trong c?a s? m?, g? m? sau đây cho các ToggleButton1Click s? ki?n:
    Private Sub ToggleButton1_Click()
    
        If ToggleButton1.Value = True Then
            ' Set UserForm background to Red.
            Me.BackColor = RGB(255, 0, 0)
        Else
            ' Set UserForm background to Blue.
            Me.BackColor = RGB(0, 0, 255)
        End If
    
    End Sub
  8. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
Khi b?n b?m vào các ToggleButton ki?m soát, màu n?n c?a nh?ng thay đ?i UserForm.

Làm th? nào đ? t?o m?t nhóm các lo?i tr? l?n nhau ToggleButton đi?u khi?n

Ví d? này s? d?ng các MouseUp s? ki?n đ? thi?t l?p m?t bi?n và các cu?c g?i các ExclusiveToggleButtons th? t?c. Các ExclusiveToggleButtons th? t?c s? xác đ?nh các ToggleButton ki?m soát mà đư?c ch?n, và sau đó h?y b? nh?ng ngư?i khác. Đ? t?o ra m?t nhóm lo?i tr? l?n nhau ToggleButton đi?u khi?n, h?y làm theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoMô-đun.
  4. Trong c?a s? m? cho các mô-đun, h?y nh?p m? sau đây:
    ' Variable that holds the name of the ToggleButton that was clicked.
    Public clicked As String
    
    Sub ExclusiveToggleButtons()
    
       Dim toggle As Control
    
       ' Loop through all the ToggleButtons on Frame1.
       For Each toggle In UserForm1.Frame1.Controls
    
           ' If Name of ToggleButton matches name of ToggleButton
           ' that was clicked...
           If toggle.Name = clicked Then
              '...select the button.
              toggle.Value = True
           Else
              '...otherwise clear the selection of the button.
              toggle.Value = False
           End If
        Next
    
    End Sub
  5. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  6. Thêm m?t Khung ki?m soát đ? UserForm.
  7. Thêm m?t ToggleButton ki?m soát trong các Khung ki?m soát.

    L?p l?i bư?c này đ? thêm hai b? ToggleButton ki?m soát trong các Khung ki?m soát.
  8. B?m đúp vào các Khung đi?u khi?n đ? hi?n th? c?a s? m? cho UserForm.
  9. Trong c?a s? m? cho các phân h?, nh?p m? sau Đ?i v?i các ToggleButton MouseUp s? ki?n:
    Private Sub ToggleButton1_MouseUp(ByVal Button As Integer, _
                  ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    
           clicked = ToggleButton1.Name
           Application.OnTime Now, "ExclusiveToggleButtons"
    
        End Sub
    
        Private Sub ToggleButton2_MouseUp(ByVal Button As Integer, _
                  ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    
            clicked = ToggleButton2.Name
            Application.OnTime Now, "ExclusiveToggleButtons"
    
        End Sub
    
        Private Sub ToggleButton3_MouseUp(ByVal Button As Integer, _
                  ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    
            clicked = ToggleButton3.Name
            Application.OnTime Now, "ExclusiveToggleButtons"
    
        End Sub
  10. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
Khi b?n b?m vào m?t ToggleButton ki?m soát, trư?c đó đ? ch?n ToggleButton ki?m soát đư?c h?y b?.

TabStrip ki?m soát

S? d?ng m?t TabStrip ki?m soát xem b? khác nhau c?a thông tin cho m?t t?p c?a đi?u khi?n.

Làm th? nào đ? ki?m soát m?t đi?u khi?n TabStrip l?p tr?nh

Đ? thay đ?i các BackColor tài s?n c?a m?t H?nh ?nh ki?m soát d?a trên tab đư?c ch?n, h?y làm theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Editor.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t TabStrip ki?m soát đ? UserForm.
  5. Thêm m?t H?nh ?nh đi?u khi?n n?m trên các căn c? c?a các TabStrip ki?m soát, nhưng đi?u đó không bao g?m các tab.
  6. Trong c?a s? thu?c tính cho Image1, g?& H000000FF & trong các BackColor b?t đ?ng s?n.
  7. B?m đúp vào các TabStrip đi?u khi?n đ? m? c?a s? m? cho các TabStrip ki?m soát.
  8. Trong c?a s? m?, g? m? sau đây cho các Thay đ?i TabStrip1 s? ki?n:
    Private Sub TabStrip1_Change()
    
        Dim i As Integer
    
        i = TabStrip1.SelectedItem.Index
        Select Case i
            Case 0
                ' If Tab1 is selected, change the color of Image control to Red.
                Image1.BackColor = RGB(255, 0, 0)
            Case 1
                ' If Tab2 is selected, change the color of Image control to Green.
                Image1.BackColor = RGB(0, 255, 0)
        End Select
    
    End Sub
  9. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
Màu s?c c?a các H?nh ?nh ki?m soát thay đ?i tùy thu?c vào trang web trong các TabStrip đi?u khi?n đang ho?t đ?ng.

Đ? thêm thông tin v? TabStrip đi?u khi?n, nh?p vào s? bài vi?t sau đây đ? xem các bài vi?t trong các Cơ s? ki?n th?c Microsoft:
213254XL2000: Làm th? nào đ? s? d?ng đi?u khi?n TabStrip trên m?t UserForm

MultiPage ki?m soát

S? d?ng m?t MultiPage ki?m soát đ? làm vi?c v?i r?t nhi?u thông tin có th? đư?c s?p x?p thành nhi?u lo?i. Một MultiPage ki?m soát đư?c t?o thành c?a m?t ho?c nhi?u Trang các đ?i tư?ng mà m?i ch?a m?t t?p khác nhau c?a các đi?u khi?n. B?n có th? thi?t l?p trang ho?t đ?ng l?p tr?nh b?ng cách thi?t l?p các Giá trị tài s?n c?a các MultiPage ki?m soát.

Làm th? nào đ? ki?m soát m?t đi?u khi?n MultiPage l?p tr?nh

Đ? thêm m?t MultiPage ki?m soát và ki?m soát nó b?ng cách s? d?ng m?t v? mô, theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t MultiPage ki?m soát đ? UserForm.
  5. Thêm m?t Nh?n hi?u ki?m soát đ? Trang1 trên các MultiPage ki?m soát.
  6. Thêm m?t TextBox ki?m soát đ? Trang1 trên các MultiPage ki?m soát.
  7. Trên các MultiPage đi?u khi?n, b?m vào Page2, và sau đó l?p l?i bư?c 5 và 6 đ? thêm m?t Nh?n hi?u ki?m soát và m?t TextBox ki?m soát.
  8. B?m đúp vào các MultiPage đi?u khi?n đ? m? c?a s? m? cho các MultiPage ki?m soát.
  9. Trong c?a s? m?, g? m? sau đây cho các Thay đ?i MultiPage1 s? ki?n:
    Private Sub MultiPage1_Change()
    
        Select Case MultiPage1.Value
            ' If activating Page1...
            Case 0
                Label1.Caption = TextBox2.Text
                TextBox1.Text = ""
            ' If activating Page2...
            Case 1
                Label2.Caption = TextBox1.Text
                TextBox2.Text = ""
        End Select
    
    End Sub
  10. Trong c?a s? m?, g? m? sau đây cho các UserForm Initialize s? ki?n:
    Private Sub UserForm_Initialize()
    
        ' Force Page1 to be active when UserForm is displayed.
        MultiPage1.Value = 0
        Label1.Caption = ""
    
    End Sub
  11. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.

    Trong các TextBox ki?m soát vào Trang1, lo?i Test. Khi b?n b?m vào các Page2 tab, TextBox2 s? b? xóa, và chú thích c?a Label2 thay đ?i đ?i v?i các m?c mà b?n đ? th?c hi?n trong TextBox1 vào Trang1 ("Test").

Làm th? nào đ? t?o ra m?t giao di?n thu?t s? b?ng cách s? d?ng m?t đi?u khi?n MultiPage

Khi m?t công vi?c đ?i h?i m?t vài bư?c tăng d?n, m?t giao di?n thu?t s? có th? r?t hi?u qu?. B?n có th? s? d?ng các MultiPage đi?u khi?n đ? t?o ra m?t giao di?n thu?t s? thay v? c?a vi?c s? d?ng đa UserForms. Ví d? này khi?n m?t MultiPage ki?m soát có ba trang. M?t th? t?c là g?n li?n v?i các Kh?i t?o s? ki?n UserForm vô hi?u hóa Page2 và Page3, và các l?c lư?ng Trang1 c?a các MultiPage ki?m soát đư?c ho?t đ?ng.

Chú ý Khi b?n đánh ch? m?c các trang c?a m?t MultiPage đi?u khi?n b?ng cách s? d?ng các Các trang b? sưu t?p, trang đ?u tiên trong b? sưu t?p là trang zero. Đi?u này th? t?c c?ng đ?t ra các chú thích c?a các CommandButton ki?m soát và vô hi?u hóa các <> nút.

Chú ý Các th? t?c đư?c gán cho các Nh?p vào s? ki?n c?a CommandButton1 đi?u khi?n các ch?c năng c?a các <> nút. Các th? t?c đư?c gán cho các Nh?p vào s? ki?n c?a CommandButton2 đi?u khi?n các ch?c năng c?a các Ti?p theo > nút. Đ? t?o ra m?t giao di?n thu?t s? b?ng cách s? d?ng m?t MultiPage ki?m soát, th?c hi?n theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t MultiPage ki?m soát đ? UserForm.
  5. Nh?p chu?t ph?i vào các Trang1 tab, và sau đó nh?p vàoM?i trang thêm Page3 đ? các MultiPage ki?m soát.
  6. Thêm m?t CommandButton đi?u khi?n trên UserForm đó không ph?i là v? các MultiPage ki?m soát.

    L?p l?i bư?c này thêm m?t l?n th? hai CommandButton đi?u khi?n trên UserForm.
  7. B?m đúp vào các UserForm đ? m? m? c?a s? cho UserForm.
  8. Trong c?a s? m?, g? m? sau đây cho các UserForm Initialize s? ki?n:
    Private Sub UserForm_Initialize()
    
        With MultiPage1
            ' The next 2 lines disable Page2 & Page3.
            .Pages(1).Enabled = False
            .Pages(2).Enabled = False
            ' Make Page1 the active page.
            .Value = 0
        End With
        
        ' Set the caption on the CommandButtons.
        CommandButton1.Caption = "<Back"
        CommandButton1.Enabled = False
        CommandButton2.Caption = "Next>"
    
    End Sub
    
    ' Procedure for the "<Back" button
    Private Sub CommandButton1_Click()
        Select Case MultiPage1.Value
            Case 1                                 ' If Page2 is active...
                With MultiPage1
                    .Pages(0).Enabled = True       ' Enable Page1.
                    .Value = MultiPage1.Value - 1  ' Move back 1 page.
                    .Pages(1).Enabled = False      ' Disable Page2.
                End With
                CommandButton1.Enabled = False     ' Disable Back button.
                
            Case 2                                 ' If Page3 is active...
                With MultiPage1
                    .Pages(1).Enabled = True       ' Enable Page2.
                    .Value = MultiPage1.Value - 1  ' Move back 1 page.
                    .Pages(2).Enabled = False      ' Disable Page3.
       CommandButton2.Caption = "Next>"
                End With
        End Select
    
    End Sub
    
    ' Procedure for the "Next>" button
    Private Sub CommandButton2_Click()
    
        Select Case MultiPage1.Value
            Case 0                                  ' If Page1 is active...
                With MultiPage1
                    .Value = MultiPage1.Value + 1   ' Move forward 1 page.
                    .Pages(1).Enabled = True        ' Enable Page2.
                    .Pages(0).Enabled = False       ' Disable Page1.
                End With
                CommandButton1.Enabled = True       ' Enable Back button.
                
            Case 1                                  ' If Page2 is active...
                With MultiPage1
                    .Value = MultiPage1.Value + 1   ' Move forward 1 page.
                    .Pages(2).Enabled = True        ' Enable Page3.
                    .Pages(1).Enabled = False       ' Disable Page2.
                End With
                CommandButton2.Caption = "Finish"   ' Change Next button to Finish.
                
            Case 2                                  ' If Page3 is active...
                MsgBox "Finished!"                  ' User is Finished.
                Unload Me                           ' Unload the UserForm.
        End Select
    
    End Sub
    
  9. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
Khi b?n b?m vào Ti?p theo >Page2 đư?c kích ho?t và các <> nút tr? thành có s?n. Khi b?n b?m vào Ti?p theo > m?t l?n th? hai, Page3 đư?c kích ho?t và chú thích cho CommandButton2 thay đ?i đ? "Finish".

Đi?u khi?n thanh cu?n

B?n có th? s? d?ng m?t Thanh cu?n đi?u khi?n khi b?n mu?n thay đ?i các giá tr? mà s? đư?c hi?n th? b?i m?t ki?m soát, ch?ng h?n như m?t Nh?n hi?u ki?m soát.

Làm th? nào đ? thay đ?i m?t đi?u khi?n nh?n d?a trên giá tr? c?a m?t ki?m soát thanh cu?n

Đ? thay đ?i các Chú thích tài s?n c?a m?t Nh?n hi?u đi?u khi?n các thi?t l?p hi?n t?i c?a các Giá trị tài s?n c?a m?t Thanh cu?n ki?m soát, th?c hi?n theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t Thanh cu?n ki?m soát đ? UserForm.
  5. Thêm m?t Nh?n hi?u ki?m soát đ? UserForm.
  6. B?m đúp vào các Thanh cu?n đi?u khi?n đ? m? c?a s? m? cho các Thanh cu?n ki?m soát.
  7. Trong c?a s? m?, g? m? sau đây cho các Thay đ?i ScrollBar1 s? ki?n:
    Private Sub ScrollBar1_Change()
    
        Label1.Caption = ScrollBar1.Value
    
    End Sub
  8. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
Khi b?n di chuy?n b?ng cách s? d?ng các Thanh cu?n ki?m soát, Label1 đư?c C?p Nh?t v?i giá tr? hi?n t?i c?a các Thanh cu?n ki?m soát.

SpinButton ki?m soát

Một SpinButton ki?m soát, gi?ng như m?t Thanh cu?n ki?m soát, thư?ng đư?c s? d?ng đ? tăng ho?c gi?m các giá tr? c?a m?t ki?m soát, ch?ng h?n như m?t Nh?n hi?u ki?m soát. Các SmallChange b?t đ?ng s?n s? xác đ?nh bao nhiêu giá tr? c?a m?t SpinButton ki?m soát nh?ng thay đ?i khi nó đư?c nh?p.

Làm th? nào đ? thêm m?t đi?u khi?n SpinButton gia s? ho?c decrements m?t ngày đư?c lưu tr? trong m?t ki?m soát TextBox

Đ? thêm m?t SpinButton quy?n ki?m soát gia s? ho?c decrements m?t ngày đư?c lưu tr? trong m?t TextBox ki?m soát, th?c hi?n theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t SpinButton ki?m soát đ? UserForm.
  5. Thêm m?t TextBox ki?m soát đ? UserForm.
  6. B?m đúp vào các SpinButton ki?m soát đ? m? c?a s? m? cho các SpinButton ki?m soát.
  7. Trong c?a s? m?, g? m? sau đây cho các SpinButton1 SpinUp s? ki?n:
    Private Sub SpinButton1_SpinUp()
    
        TextBox1.Text = DateValue(TextBox1.Text) + 1
    
    End Sub
    
  8. Trong c?a s? m?, g? m? sau đây cho các SpinButton1 SpinDown s? ki?n:
    Private Sub SpinButton1_SpinDown()
    
        TextBox1.Text = DateValue(TextBox1.Text) - 1
    
    End Sub
    
  9. Trong c?a s? m?, g? m? sau đây cho các UserForm Initialize s? ki?n:
    Private Sub UserForm_Initialize()
    
        TextBox1.Text = Date
    
    End Sub
    
  10. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.
Khi UserForm xu?t hi?n, ngày hi?n t?i s? xu?t hi?n trong TextBox1. Khi b?n b?m vào các SpinButton ki?m soát, ngày là incremented ho?c sai b?i m?t trong nh?ng ngày.

Trong ví d? này, n?u b?n thay đ?i các SmallChange tài s?n c?a SpinButton1, b?n không ?nh hư?ng đ?n s? ngày m?c nh?p trong TextBox1 đư?c thay đ?i b?i khi b?n nh?p vào SpinButton1. S? ngày đư?c xác đ?nh ch? b?i các th? t?c mà b?n g?n li?n v?i các SpinUp s? ki?n và các SpinDown s? ki?n c?a SpinButton1.

Đ? thêm thông tin v? SpinButton đi?u khi?n, nh?p vào s? bài vi?t sau đây đ? xem bài vi?t trong Microsoft Knowledge Base:
213224XL2000: Visual Basic ví d? cho vi?c s? d?ng m?t nút quay v?i m?t ngày

RefEdit ki?m soát

Các RefEdit ki?m soát b?t chư?c nh?ng hành vi c?a các h?p tham kh?o đư?c đư?c xây d?ng trong Excel. B?n có th? s? d?ng các Giá trị b?t đ?ng s?n đ? có đư?c đ?a ch? hi?n t?i c?a t? bào đư?c lưu tr? trong m?t RefEdit ki?m soát.

Làm th? nào đ? cư m?t lo?t các t? bào d?a trên ph?m vi mà b?n ch?n b?ng cách s? d?ng ki?m soát RefEdit

S? d?ng các RefEdit đi?u khi?n đ? cư các t? bào, h?y làm theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t RefEdit ki?m soát đ? UserForm.
  5. Thêm m?t CommandButton ki?m soát đ? UserForm.
  6. B?m đúp vào các CommandButton ki?m soát đ? m? c?a s? m? cho các CommandButton ki?m soát.
  7. Trong c?a s? m?, g? m? sau đây cho các B?m vào CommandButton1 s? ki?n:
    Private Sub CommandButton1_Click()
    
        Dim MyRange As String
        MyRange = RefEdit1.Value
        Range(MyRange).Value = "test"
        Unload Me
    
    End Sub
  8. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.

    UserFormappears.
  9. Nh?p vào nút trong các RefEdit ki?m soát.

    Chú ? r?ng UserForm s?p đ?.
  10. Ch?n m?t lo?t các t? bào như là A1:A5, và sau đó b?m các Button trong các RefEdit đi?u khi?n đ? m? r?ng UserForm.
  11. Nh?p vào CommandButton1.
UserForm đóng c?a và các t? bào mà b?n đ? ch?n bây gi? ch?a t? "th? nghi?m".

Cho thông tin thêm v? ki?m soát RefEdit, b?m vào bài vi?t sau đây s? đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
213776XL2000: Làm th? nào đ? s? d?ng đi?u khi?n RefEdit v?i m?t UserForm

H?nh ?nh ki?m soát

M?c đích c?a các H?nh ?nh ki?m soát là đ? hi?n th? m?t h?nh ?nh trên m?t UserForm. Đ? gán m?t h?nh ?nh cho m?t H?nh ?nh ki?m soát t?i th?i gian ch?y, s? d?ng các LoadPicture ch?c năng.

Làm th? nào đ? t?i m?t h?nh ?nh vào m?t đi?u khi?n h?nh ?nh

Đ? chèn m?t H?nh ?nh ki?m soát mà s? nh?c b?n ch?n m?t h?nh ?nh đ? t?i khi b?n b?m vào các H?nh ?nh ki?m soát, th?c hi?n theo các bư?c sau:
  1. B?t đ?u Excel, và sau đó m? m?t workbook tr?ng m?i.
  2. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  3. Trên các Chèn tr?nh đơn, nh?p vàoUserForm đ? chèn m?t UserForm trong b?ng tính c?a b?n.
  4. Thêm m?t H?nh ?nh đi?u khi?n trên UserForm.
  5. B?m đúp vào các H?nh ?nh đi?u khi?n đ? m? các M? c?a s? cho các H?nh ?nh ki?m soát.
  6. Trong c?a s? m?, g? m? sau đây cho các B?m vào Image1 s? ki?n:
    Private Sub Image1_Click()
    
        Dim fname As String
        
        ' Display the Open dialog box.
        fname = Application.GetOpenFilename(filefilter:= _
                "Bitmap Files(*.bmp),*.bmp", Title:="Select Image To Open")
        
        ' If you did not click Cancel...
        If fname <> "False" Then
    
            ' Load the bitmap into the Image control.
            Image1.Picture = LoadPicture(fname)
    
            ' Refresh the UserForm.
            Me.Repaint
        End If
    
    End Sub
    
  7. Trên các Ch?y tr?nh đơn, nh?p vào Ch?y Ph?/UserForm.

    UserForm s? xu?t hi?n.
  8. B?m vào các H?nh ?nh ki?m soát.

    Khi b?n b?m vào các H?nh ?nh đi?u khi?n, các Ch?n h?nh ?nh đ? m? h?p tho?i xu?t hi?n, và sau đó b?n có th? ch?n m?t t?p bitmap đ? chèn vào các ki?m soát.
Đ? có thêm thông tin v? vi?c ki?m soát h?nh ?nh, b?m s? bài vi?t sau đây đ? xem bài vi?t trong các ki?n th?c Microsoft Cơ s?:
213732XL2000: S? d?ng ch?c năng LoadPicture v?i m?t đi?u khi?n h?nh ?nh

Thông tin b? sung

Các tr?nh duy?t đ?i tư?ng

Danh sách đ?y đ? c?a t?t c? các tài s?n và phương pháp đ? m?t c? th? l?nh có s?n trong các Đ?i tư?ng tr?nh duy?t. Đ? bi?t thông tin này trong Excel, h?y làm theo các bư?c sau:
  1. Trên các Công cụ tr?nh đơn, đi?m đ?nV? mô, sau đó b?m Visual Basic Biên t?p viên.
  2. Trên các Xem tr?nh đơn, nh?p vào Đ?i tư?ng Tr?nh duy?t.
  3. Trong các T?m ki?m văn b?n h?p, g? tên c?a đi?u khi?n mà b?n mu?n, và sau đó nh?p vào Tìm kiếm.
Đ? bi?t thêm v? cách s? d?ng các tr?nh duy?t đ?i tư?ng, trong Visual Basic Editor, nh?n vào đây Tr? giúp Microsoft Visual Basictrên các Trợ giúp tr?nh đơn, lo?i Đ?i tư?ng tr?nh duy?ttr? l? văn ph?ng ho?c các thu?t s? tr? l?i, và sau đó nh?p vào Tìm kiếm đ? xem các ch? đ?.
Đ? thêm thông tin v? làm th? nào đ? cài đ?t Microsoft Excel giúp trên máy tính c?a b?n, h?y nh?p vào sau s? bài vi?t đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
231946OFF2000: Làm th? nào đ? thêm/lo?i b? m?t văn ph?ng chương tr?nh duy nh?t ho?c thành ph?n

Thu?c tính

ID c?a bài: 829070 - L?n xem xét sau cùng: 20 Tháng Chín 2011 - Xem xét l?i: 3.0
Áp d?ng
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2010
  • Microsoft Office Excel 2007
T? khóa: 
kbprogramming kbfunctions kbhowtomaster kbhowto kbmt KB829070 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:829070

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com