Tôi đã đọc và áp dụng giải pháp mà tôi tìm thấy trên các chủ đề tương tự nhưng dường như không có gì hoạt động trong trường hợp của tôi.Excel - VBA: chuyển biến từ Sub sang Userform
Vì vậy, tôi muốn chuyển một biến từ một phần của Mô-đun1 sang biểu mẫu người dùng. Đó là một chuỗi gọi là "provinceSugg".
Dưới đây là phần có liên quan của mã của tôi:
Public provinceSugg As String
Sub probaCity()
[...]
If province = "" And city <> "" Then
provinceSugg = sCurrent.Cells(p, db_column).Offset(0, 1).Value
UserForm2.Label1 = "Do you mean " & city & " in " & provinceSugg & " ?"
UserForm2.Label1.TextAlign = fmTextAlignCenter
UserForm2.Show
Else
End If
End Sub
Và sau đó trong mã userform của tôi:
Private Sub userformBtn1_Click()
MsgBox provinceSugg
sMain.Range("J6").Value = provinceSugg
End Sub
Khi tôi chạy chương trình của tôi:
1/ Tôi có nội dung của tỉnhSugg hiển thị trong MsgBox được gọi từ phụ của tôi (vì vậy có một tỉnhSugg, nó không phải là một biến trống).
2/ MsgBox được gọi từ biểu mẫu người dùng trống (vì vậy không thể vượt qua giá trị) và chương trình của tôi bị lỗi khi chạy "sMain.Range (" J6 "). Value = provinceSugg" với thông báo "Lỗi 424 đối tượng bắt buộc" (do đó, biến không thành công để chuyển sang biểu mẫu người dùng).
Tôi đã thử tất cả nội dung tôi tìm thấy trên diễn đàn và tại đây (các cách khác nhau để chỉ ra rằng provinceSugg là biến công khai nhưng vẫn bị lỗi ...).
Cảm ơn trước sự giúp đỡ của bạn!
Làm việc tốt cho tôi. Có bất kỳ mã nào khác đang chạy - chẳng hạn như khởi tạo UserForm - xen kẽ với 'provinceSugg' không? Bạn có thể đăng bài của bạn (đã được vệ sinh nếu cần) không? – brettdj
@brettdj Tôi có một số cập nhật: với mã này trong button_click ("MsgBox provinceSugg sMain.Range (" J6 ").Value = provinceSugg), bây giờ tôi đã có contentSugg nội dung được hiển thị trong MsgBox nhưng vẫn không có gì cho dòng tiếp theo và lỗi tương tự (đối tượng yêu cầu/lỗi 424), vì vậy giá trị được thông qua nhưng không thể đọc được trong lệnh thứ hai .. – Phalanx
Nếu bạn thử 'Sheets (x) .Range (" J6 "). Value = provinceSugg' trong đó' x' là vị trí 'sMain' thực hiện công việc này - tôi nghĩ đây là vấn đề của bạn – brettdj