[HỎI] Cách lấy giá trị sau khi nhấn vào Button của UserForm sau khi đóng

Liên hệ QC

Mutants Men

Thành viên thường trực
Tham gia
30/12/15
Bài viết
394
Được thích
266
Chào mọi ngời
Mọi người cho em hỏi vấn đề này với
ví dụ em có 2 UserForm1 và UserForm2
UserForm1 có 1 CommandButton1
UserForm2 có 3 CommandButton1 với caption lần lượt là 1, 2, 3
Em muốn thế này
ở UserForm1 nhấn vào CommandButton thì UserForm2 hiện lên
sau đó nhấn vào bất kỳ CommandButton 1, 2, 3 thì UserForm2 sẽ đóng và giá trị CommandButton.caption sẽ truyền qua CommandButton1.caption ở UserForm1 (không sử dụng biến khai báo toàn cục để lưu giá trị rồi gán vào)

Em muốn
CommandButton1.Caption = UserForm2.xValue
xValue đó là hàm trong UserForm2.
Cảm ơn mọi người
 

File đính kèm

  • hoi.xlsm
    26.6 KB · Đọc: 11
Mọi người cho em hỏi vấn đề này với
ví dụ em có 2 UserForm1 và UserForm2
1. Code trong:
- UserForm1
Mã:
Option Explicit

Private Sub CommandButton1_Click()
    UserForm2.Show
End Sub
- UserForm2
Mã:
Option Explicit

Private Sub CommandButton1_Click()
    DoClick CommandButton1.Caption
End Sub

Private Sub CommandButton2_Click()
    DoClick CommandButton2.Caption
End Sub

Private Sub CommandButton3_Click()
    DoClick CommandButton3.Caption
End Sub

Private Sub DoClick(ByVal text As String)
    chen_giatri text
    Unload Me
End Sub

- Module1
Mã:
Option Explicit

Sub showForm()
    UserForm1.Show
End Sub

Sub chen_giatri(ByVal xValue As String)
    UserForm1.CommandButton1.Caption = xValue
End Sub

2. Gán macro showForm cho Button 1 trên sheet.
 
Upvote 0
1. Code trong:
- UserForm1
Mã:
Option Explicit

Private Sub CommandButton1_Click()
    UserForm2.Show
End Sub
- UserForm2
Mã:
Option Explicit

Private Sub CommandButton1_Click()
    DoClick CommandButton1.Caption
End Sub

Private Sub CommandButton2_Click()
    DoClick CommandButton2.Caption
End Sub

Private Sub CommandButton3_Click()
    DoClick CommandButton3.Caption
End Sub

Private Sub DoClick(ByVal text As String)
    chen_giatri text
    Unload Me
End Sub

- Module1
Mã:
Option Explicit

Sub showForm()
    UserForm1.Show
End Sub

Sub chen_giatri(ByVal xValue As String)
    UserForm1.CommandButton1.Caption = xValue
End Sub

2. Gán macro showForm cho Button 1 trên sheet.
em cảm ơn bác ạ! nhưng không đúng ý em rồi ạ
chả là em có tìm được 1 form Calendar trên mạng. nhưng em xem rồi không biết cách làm giống vậy với Form khác, mục đích cũng không phải để điền ngày mà làm việc khác ạ
trong file không phải dùng Sub phụ bên ngoài như bác hướng dẫn
Sub chen_giatri(ByVal xValue As String) UserForm1.CommandButton1.Caption = xValue End Sub nếu như vậy thì code không linh động được ạ
 

File đính kèm

  • hoi.xlsm
    133 KB · Đọc: 4
Upvote 0
chả là em có tìm được 1 form Calendar trên mạng. nhưng em xem rồi không biết cách làm giống vậy với Form khác, mục đích cũng không phải để điền ngày mà làm việc khác ạ
trong file không phải dùng Sub phụ bên ngoài như bác hướng dẫn

Sao bạn không dùng biến toàn cục. Khi bấm thì truyền giá trị cho biến rồi Sub khác sẽ xử lý dựa trên biến này.
 
Upvote 0
Sao bạn không dùng biến toàn cục. Khi bấm thì truyền giá trị cho biến rồi Sub khác sẽ xử lý dựa trên biến này.
em cảm ơn ạ. em không muốn dùng nhiều biến quá, giả sử có chia sẻ form thì chỉ chia sẻ file bas form đó thôi chứ không cần lằng nhằng khai báo gì thêm
em đã giải quyết được rồi ạ
cảm ơn mọi người đã quan tâm
 

File đính kèm

  • hoi.xlsm
    36.1 KB · Đọc: 8
Lần chỉnh sửa cuối:
Upvote 0
em cảm ơn bác ạ! nhưng không đúng ý em rồi ạ
chả là em có tìm được 1 form Calendar trên mạng. nhưng em xem rồi không biết cách làm giống vậy với Form khác, mục đích cũng không phải để điền ngày mà làm việc khác ạ
trong file không phải dùng Sub phụ bên ngoài như bác hướng dẫn
Sub chen_giatri(ByVal xValue As String) UserForm1.CommandButton1.Caption = xValue End Sub nếu như vậy thì code không linh động được ạ
Nếu thế thì cũng có thể nói là bạn dùng function phụ xValue. Tôi chỉ bỏ function phụ xValue và thay nó bằng sub phụ chen_giatri thôi.
 
Upvote 0
em cảm ơn bác ạ! nhưng không đúng ý em rồi ạ
chả là em có tìm được 1 form Calendar trên mạng. nhưng em xem rồi không biết cách làm giống vậy với Form khác, mục đích cũng không phải để điền ngày mà làm việc khác ạ
trong file không phải dùng Sub phụ bên ngoài như bác hướng dẫn
Sub chen_giatri(ByVal xValue As String) UserForm1.CommandButton1.Caption = xValue End Sub nếu như vậy thì code không linh động được ạ
Cách làm này nghe vẻ khá dài hoặc phức tạp bạn nhỉ, bởi đóng form 2 rồi thì giải phóng các hàm/thủ và các biến rồi còn đâu.
Vậy có thể chọn giải pháp ghi tạm vào đâu đó như: name hoặc xuống cell nào đó... rồi gọi form 1 lên và lấy giá trị từ đây được không?
 
Upvote 0
Web KT
Back
Top Bottom