如何将窗体中的excel 赋值到文本框中?

来源:百度知道 编辑:UC知道 时间:2024/09/28 12:47:55
请问如何将窗体中某个未绑定的excel在失去焦点后(或者退出后),将excel中某些指定的单元格数据直接赋值到同窗体的文本框中(如A1的数值就显示在A1的文本框中)?谢谢!

以下代码无效,供参考
Private Sub OLEUnbound0_LostFocus()

Dim xlObj As Object
Me.Text1 = xlObj.range("A1")
Me.Text2 = xlObj.range("B1")

End Sub

你的窗体是VBA的窗体还是外部编程环境下的窗体?

如果是VBA的,就不好弄了,只是失去焦点,workbook有对应的事件

你在ThisWorkBook下面添加对应的事件代码

Private Sub Workbook_Deactivate()
MsgBox "OK"
End Sub

如果该Workbook失去焦点,则会弹出Ok的信息,这样,你可以把你要的赋值语句放在这个子程内。
但是如果你是关闭的话,就不行了,事件仍可以激发,但是窗体会随着Workbook的关闭而卸载。

如果是外部编程的窗体,那么你需要声明一个带时间的Excel对象,这样仍然捕获Excel事件的发生,在指定workbook关闭的时候,把workbook中的信息填写到窗体上。
声请带事件的对象格式如下
Dim WithEvents ExcelApp As ExcelApplication