让我们说我有一个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的引用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top