【发布时间】:2010-03-29 22:26:36
【问题描述】:
假设我在 Microsoft Access 表单上嵌入了 Excel 电子表格。我称对象框架
ExcelFrame
我在表单上添加了一个名为
的文本框txtA1
我在表单上添加了一个按钮
cmdInsert
我想在文本框中输入“Hello World”,单击按钮并让它出现在该电子表格的 A1 单元格中。我用什么 VBA 来完成这个?
谢谢
【问题讨论】:
假设我在 Microsoft Access 表单上嵌入了 Excel 电子表格。我称对象框架
ExcelFrame
我在表单上添加了一个名为
的文本框txtA1
我在表单上添加了一个按钮
cmdInsert
我想在文本框中输入“Hello World”,单击按钮并让它出现在该电子表格的 A1 单元格中。我用什么 VBA 来完成这个?
谢谢
【问题讨论】:
您可以自动化 Excel,将值写入工作表,然后更新对象框架。
Private Sub cmdInsert_Click()
Dim strPath As String
Dim oExcel As Object
Dim oSheet As Object
Set oExcel = CreateObject("Excel.Application")
oExcel.Visible = True
strPath = Me.ExcelFrame.SourceDoc
'Debug.Print strPath '
oExcel.Workbooks.Open strPath
Set oSheet = oExcel.ActiveSheet
'Debug.Print oSheet.Name '
oSheet.Range("A1").Value = Me.txtA1
oExcel.ActiveWorkbook.Save
oExcel.Quit
Set oSheet = Nothing
Set oExcel = Nothing
'acOLEUpdate action requires Enabled = True '
'and Locked = False '
Me.ExcelFrame.Enabled = True
Me.ExcelFrame.Locked = False
Me.ExcelFrame.Action = acOLEUpdate
Me.txtA1.SetFocus
Me.ExcelFrame.Enabled = False
Me.ExcelFrame.Locked = True
End Sub
编辑:该示例基于一个外部工作簿文件,该文件被链接作为表单对象框架的源。
要链接工作表,请选择“从文件创建”单选按钮,选中“链接”复选框,然后浏览以选择工作簿。这就是我使用 Access 2007 的方式。我记得,它与 Access 2003 类似。
【讨论】:
什么时候都不晚,对吧?
假设您已经创建了 Excel 对象(如在 OP 中):
Dim wb As Excel.Workbook, ws As Excel.Worksheet
Set wb = Me.ExcelFrame.Object
Set ws = wb.Worksheets(1)
ws.range("a1")= "Hello world"
请注意,此代码需要在 VBA 中引用 MS Excel。
【讨论】: