Tôi đã tìm thấy nhiều tài nguyên trên internet thực hiện gần như những gì tôi muốn thực hiện, nhưng không hoàn toàn.Tôi có một phạm vi được đặt tên là "danh sách ban ngày". Đối với mỗi ngày trong danh sách ban ngày, tôi muốn tạo một nút trên biểu mẫu người dùng sẽ chạy macro cho ngày đó. Tôi có thể add the buttons dynamically nhưng không biết cách vượt qua daycell.text từ phạm vi được đặt tên, tới nút, tới trình xử lý sự kiện, tới macro: S Heres mã tôi phải tạo biểu mẫu người dùng:Chỉ định các trình xử lý sự kiện để điều khiển trên biểu mẫu người dùng được tạo động trong VBA
Sub addLabel()
ReadingsLauncher.Show vbModeless
Dim theLabel As Object
Dim labelCounter As Long
Dim daycell As Range
Dim btn As CommandButton
Dim btnCaption As String
For Each daycell In Range("daylist")
btnCaption = daycell.Text
Set theLabel = ReadingsLauncher.Controls.Add("Forms.Label.1", btnCaption, True)
With theLabel
.Caption = btnCaption
.Left = 10
.Width = 50
.Top = 20 * labelCounter
End With
Set btn = ReadingsLauncher.Controls.Add("Forms.CommandButton.1", "runButton", True)
With btn
.Caption = "Run Macro for " & btnCaption
.Left = 80
.Width = 80
.Top = 20 * labelCounter
' .OnAction = "btnPressed"
End With
labelCounter = labelCounter + 1
Next daycell
End Sub
để khắc phục vấn đề trên tôi đang nhắc nhở người dùng gõ ngày họ muốn chạy (ví dụ Day1) và chuyển thông tin này đến vĩ mô và hoạt động:
Sub B45runJoinTransactionAndFMMS()
loadDayNumber = InputBox("Please type the day you would like to load:", Title:="Enter Day", Default:="Day1")
Call JoinTransactionAndFMMS(loadDayNumber)
End Sub
Sub JoinTransactionAndFMMS(loadDayNumber As String)
xDayNumber = loadDayNumber
Sheets(xDayNumber).Activate
-Do stuff
End Sub
vì vậy, đối với mỗi runButtons của tôi, nó cần hiển thị daycell.text và chạy macro sử dụng cùng văn bản đó làm tham số để chọn trang tính để thực hiện công việc của nó.
Mọi trợ giúp đều tuyệt vời. Ive thấy phản ứng tự động viết mã vba, để xử lý các macro, nhưng tôi tin rằng phải có someway nó có thể được thực hiện một chút thanh lịch hơn thông qua các thông số đi qua, chỉ cần không chắc chắn như thế nào. Rất cám ơn trước!
[này] (http://www.access-programmers.co.uk/forums/archive/index.php/t-88887.html) trông gần với những gì bạn muốn. OTOH tại sao không tạo ra một combobox mà populates từ 'daylist' và một nút lệnh duy nhất có thể đọc các giá trị được lựa chọn? –
Im nghĩ tôi có thể phải đi cho tùy chọn đó. Vì macro được sử dụng để sàng lọc và tải lên dữ liệu, tôi đã hy vọng rằng tôi có thể tạo màn hình khởi chạy nhỏ có thể có dòng cho mỗi ngày và hiển thị # bản ghi, số lỗi, v.v. các nút cho mỗi một trong số đó sẽ làm cho người dùng thân thiện hơn một chút. Tuy nhiên, trừ khi tôi có thể tìm thấy một giải pháp đơn giản hơn, tôi nghĩ rằng đề xuất của bạn sẽ là người chiến thắng. – BiGXERO
Một suy nghĩ khác ... Có lẽ bạn có thể xây dựng một bảng thông tin có liên quan (số ngày, # bản ghi, # lỗi, v.v.) trong một trang tính đặc biệt và nắm bắt các sự kiện nhấp tại đó. –