phihndhsp
Thành viên gạo cội




- Tham gia
- 26/12/09
- Bài viết
- 3,363
- Được thích
- 2,488
- Giới tính
- Nam
- Nghề nghiệp
- Giáo Viên
Bây giờ bạn kéo các Option button ra ngoài Frame, sau đó kéo thả vào lại trong Frame. Thêm nữa, kiểm tra lại thuộc tính Visible của chúng.View attachment 76850
tôi muốn thiết kế 1 option chọn lựa một trong nhiều giống như trong VB
nhưng sau khi tôi thiết kế xong và thoát khỏi chế độ design thì nó lại ẩn các option đi, có cách nào khi cho nó chạy thì nó vẫn hiện như dạng thiết kế không? xin cảm ơn
Vẫn không được anh nghĩa phúc, khi thoát khỏi chế độ design thì nó mất những option đi, không giống như trong VB(trong VB vẽ tự do và không bao giờ bị lỗi như vậy)
Thì ra là vậy!Anh xem dùm em nha, sau khi thiết kế xong, em thoát chế độ Design thì những nút option ẩn mất, hôm trước hứa gởi anh kg khô mực mà không thấy anh hồi âm gì nên em về quê rồi, có dịp em gởi anh khô nướng nhậu rai rai
Sao Việt code cho các đối tượng không được anh oi
A có thể tạo cho em một file mẫu gồm
Combo box, list box, command
Sao em tạo được rồi mà không biết vào chỗ nào để viết code và viết trên class cũng biết cách khai báo và gọi các đối tượng trên frame
Nhờ a giúp em
[COLOR=#ff0000]Public WithEvents cboBox As MSForms.ComboBox
Public WithEvents lstBox As MSForms.ListBox
Public WithEvents cmdBtt As MSForms.CommandButton
Public WithEvents txtBox As MSForms.TextBox[/COLOR]
[COLOR=#0000cd]Private Sub Frame1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If TypeName(cboBox) = "Nothing" Then
Set cboBox = Sheet1.Frame1.Controls("ComboBox1")
cboBox.List() = Sheet1.Range("A1:A10").Value
End If
If TypeName(lstBox) = "Nothing" Then
Set lstBox = Sheet1.Frame1.Controls("ListBox1")
lstBox.List() = Sheet1.Range("A1:A10").Value
End If
If TypeName(cmdBtt) = "Nothing" Then
Set cmdBtt = Sheet1.Frame1.Controls("CommandButton1")
End If
End Sub[/COLOR]
Private Sub cboBox_Click()
Sheet1.Frame1.Controls("TextBox1").Text = cboBox.Text
End Sub
Private Sub lstBox_Click()
Sheet1.Frame1.Controls("TextBox1").Text = lstBox.Text
End Sub
Private Sub cmdBtt_Click()
MsgBox "Hello!"
End Sub
Cũng lại dùng Class thôi. Cách làm như sau:View attachment 184385
Xin cho hỏi, tôi có một vấn đề như sau
trong form tôi có 1 frame và các option, tôi muốn chọn option nào thì sẽ hiển thị thông báo option đó
nếu sự kiện thông qua nút command button để click thì không nói gì, còn nếu cài đặt sự kiện cho từng option thì quá cực
có cách nào cài đặt sự kiện trong frame để khi click vào từng option thì hiện ra thông báo như trên không?
xin chân thành cảm ơn
Public WithEvents opt As MSForms.OptionButton
Private Sub opt_Click()
MsgBox opt.Name
End Sub
Dim obj() As New Class1
Private Sub UserForm_Initialize()
Dim ctr As Control, n As Long
For Each ctr In Me.Frame1.Controls
ReDim Preserve obj(n)
Set obj(n).opt = ctr
n = n + 1
Next
End Sub
Hổng có file lấy gì mà kiểm tra đây bạn?mong anh hướng dẫn cách làm việc với các đối tượng trong multipage ở trường hợp này với ạ, thanks
Public WithEvents cboBox As MSForms.ComboBox
Public WithEvents lstBox As MSForms.ListBox
Public WithEvents cmdBtt As MSForms.CommandButton
Public WithEvents txtBox As MSForms.TextBox
Private Sub Frame1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If TypeName(cboBox) = "Nothing" Then
Set cboBox = Sheet1.Frame1.Controls("ComboBox1")
cboBox.List() = Sheet1.Range("A1:A10").Value
End If
If TypeName(lstBox) = "Nothing" Then
Set lstBox = Sheet1.Frame1.Controls("ListBox1")
lstBox.List() = Sheet1.Range("A1:A10").Value
End If
If TypeName(cmdBtt) = "Nothing" Then
Set cmdBtt = Sheet1.Frame1.Controls("CommandButton1")
End If
End Sub
Private Sub cboBox_Click()
Sheet1.Frame1.Controls("TextBox1").Text = cboBox.Text
End Sub
Private Sub lstBox_Click()
Sheet1.Frame1.Controls("TextBox1").Text = lstBox.Text
End Sub
Private Sub cmdBtt_Click()
MsgBox "Hello!"
End Sub
dạ em copy nguyên trả lời của anh ở page1 ạ, giờ e muốn làm việc thêm với cái multipage mà chưa biết làm thế nào, google vẫn chưa ra ạ, mong anh giúp đỡ, thanksLàm cho bạn 1 Frame gồm có: 1 ComboBox, 1 ListBox, 1 TextBox và 1 CommandButton
Toàn bộ code:
4 dòng khai báo màu đỏ để khai báo các controls (bắt buộc phải có)Mã:[COLOR=#ff0000]Public WithEvents cboBox As MSForms.ComboBox Public WithEvents lstBox As MSForms.ListBox Public WithEvents cmdBtt As MSForms.CommandButton Public WithEvents txtBox As MSForms.TextBox[/COLOR] [COLOR=#0000cd]Private Sub Frame1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If TypeName(cboBox) = "Nothing" Then Set cboBox = Sheet1.Frame1.Controls("ComboBox1") cboBox.List() = Sheet1.Range("A1:A10").Value End If If TypeName(lstBox) = "Nothing" Then Set lstBox = Sheet1.Frame1.Controls("ListBox1") lstBox.List() = Sheet1.Range("A1:A10").Value End If If TypeName(cmdBtt) = "Nothing" Then Set cmdBtt = Sheet1.Frame1.Controls("CommandButton1") End If End Sub[/COLOR] Private Sub cboBox_Click() Sheet1.Frame1.Controls("TextBox1").Text = cboBox.Text End Sub Private Sub lstBox_Click() Sheet1.Frame1.Controls("TextBox1").Text = lstBox.Text End Sub Private Sub cmdBtt_Click() MsgBox "Hello!" End Sub
Các dòng code màu xanh dùng sự kiện MouseMove trên Frame để khởi tạo các controls (cũng bắt buộc phải có nhưng có thể dùng các sự kiện khác như Autpen, Worksheet_Activate... để khởi tạo)
Các dòng code dưới cùng: Điều khiển sự kiện các control (viết bình thường như trên form)
-------------------
Quy trinh là vậy, bạn có thể tùy biến thêm
Cụ thể bạn muốn làm điều gì trên cái multipage này?dạ em copy nguyên trả lời của anh ở page1 ạ, giờ e muốn làm việc thêm với cái multipage mà chưa biết làm thế nào, google vẫn chưa ra ạ, mong anh giúp đỡ, thanks