所以,我有点像VBA的业余爱好者。 我正在为许多用户在我的公司使用用户表单。
我需要用户选择日期。 首先,我尝试使用DTPicker,但这在我尝试过的其他计算机上无效,所以我的同事建议我使用MonthView。
我把它放在表单中,从工具箱中删除它,然后使用这个简单的代码:
Private Sub UserForm_Initialize()
MonthView1.Value = Date
End Sub
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
On Error Resume Next
Dim cell As Object
For Each cell In Selection.Cells
cell.Value = DateClicked
Next cell
Unload Me
End Sub
工作完美。
然后我试图在另一台计算机上打开文件并得到'某些对象不可用,等等等等'的消息。即使我尝试注册OCX文件和内容,日历也没有显示,我甚至可以在表单中添加一个新的MonthView日历,但是“现有”日历没有加载。
Sooo,我尝试用代码添加对象,试图避免这种情况,我使用了这段代码:
Private Sub UserForm_Initialize()
Dim PruebaCal As Object
Set PruebaCal = Controls.Add("MSComCtl2.MonthView.2", "PruebaCal")
PruebaCal.Value = Date
End Sub
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub PruebaCal_DateClick(ByVal DateClicked As Date)
On Error Resume Next
Dim cell As Object
For Each cell In Selection.Cells
cell.Value = DateClicked
Next cell
Unload Me
End Sub
这适用于“某些对象不可用”的问题,它在两台计算机上完美加载,但Click事件无法正常工作,我不知道如何解决这个问题,可能在添加带代码的控件时触发事件是不同?我不知道。