Tham số Worksheet ???

Liên hệ QC

Mr Okebab

Ngon Ngất Ngây
Thành viên đã mất
Tham gia
6/8/06
Bài viết
3,260
Được thích
3,787
Mình có 1 file, trên đó có nhiều sheet, và một số sheet có 1 Combobox tên là CBDM
Mình muốn đến 1 sheet bất kỳ có CBDM thì có thể gọi CBDM của sheet đó ra.
Khi mình viết dòng lệnh như sau nhưng nó lại không chạy ??
Mã:
    Dim Ws As Worksheet
    Ws = ActiveSheet
    Ws.CBDM.Enabled = True
Chắc là do đặt tham số sai. Vậy phải làm thế nào các bác nhỉ ???
 
Lần chỉnh sửa cuối:
Vụ này cần nắm chắc về kỹ thuật sử dụng đối tượng trong VB. Nếu không thì gần như là không làm được.

Cách làm như sau:
Mr Oke dán đoạn code sau vào trong ThisWorkbook

Mã:
Const strComboBoxName = "CBDM"
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim WS As Worksheet
Dim Obj As OLEObject
Dim MyCombo As ComboBox
Dim Found As Boolean

[COLOR="SeaGreen"]'Init[/COLOR]
Set WS = Sh
Found = False

[COLOR="SeaGreen"]'Kiem tra cac doi tuong trong sheet
'Neu thuoc loai Forms.ComboBox.1 (ComboBox)
'Va co ten la strComboBoxName - "CBDM"
'Neu thay thi nhan doi tuong cho MyCombo
[/COLOR]For Each Obj In WS.OLEObjects
    If Obj.progID = "Forms.ComboBox.1" Then
        If Obj.Name = strComboBoxName Then
            Set [COLOR="Red"]MyCombo[/COLOR] = Obj.[COLOR="Red"]Object[/COLOR] [COLOR="SeaGreen"]'- Type cast object "ComboBox"[/COLOR]
            Found = True
        End If
    End If
Next

If Not Found Then Exit Sub [COLOR="SeaGreen"]' Thoát nếu không tìm thấy 

'Thuc hien cac lenh voi ComboBox tim duoc[/COLOR]

MsgBox "Da tim thay ComboBox co ten """ & MyCombo.Name & """" _
        , vbInformation, _
        "On sheet """ & WS.Name & """"

[COLOR="SeaGreen"]'Hay su dung cac property của ComboBox bình thường (mặc dù không nhìn thấy nó trong MyCombo)
[/COLOR]
MyCombo.ListFillRange = "A1:A10" [COLOR="SeaGreen"]'Nhan vung du lieu, có thể gán tên của vùng[/COLOR]
MyCombo.Activate [COLOR="SeaGreen"]' Kick hoat - Nhan con tro[/COLOR]

[COLOR="SeaGreen"]'MyCombo.Width
'MyCombo.Height
'MyCombo.LinkedCell
'MyCombo.Left
'MyCombo.Top
'MyCombo.Activate

'Có thể gọi một ComboBox đích danh để kiểm tra các property có trong nó,
'nếu có thì có thể sử dụng cho MyCombo
'Ví dụ
'Sheet1.ComboBox2

[/COLOR]End Sub

Mr Oke download file đính kèm để hiểu rõ hơn.
Chúc thành công!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom