假設我在Microsoft Access表單上有嵌入式Excel電子表格。我所說的對象框MS Access 2003 - 訪問表單上的嵌入式Excel電子表格
ExcelFrame
,我叫
txtA1
在窗體上添加一個文本框,我添加一個名爲
cmdInsert
我想輸入「表單上的按鈕Hello World「放入文本框中,單擊該按鈕並使其出現在該電子表格的A1單元格中。我用什麼VBA來實現這個目標?
感謝
假設我在Microsoft Access表單上有嵌入式Excel電子表格。我所說的對象框MS Access 2003 - 訪問表單上的嵌入式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的引用。
@Hans ....每當我嘗試它,我得到一個運行時錯誤,告訴我「無法找到。檢查文件名的拼寫,並確保....」但我的表單上的對象是在上面的代碼/示例中正是命名的。它似乎停止每當它試圖打開Excel框架,然後什麼也沒有。您必須單擊回到vba選項卡查看錯誤。謝謝hans – Justin 2010-03-30 11:35:21
@Hans ... oooohh我明白了。我甚至沒有在表單上使用預先保存的excel文件。我只是使用> INSERT> OBJECT> EXCEL SPREADSHEET將電子表格放置在表單上。所以上面的方法意味着使用一個獨立的已保存的excel文件,然後當我想將它添加到一個窗體時,我必須INSERT? CREATEFROMFILE>選擇它? – Justin 2010-03-30 15:09:20
@Hans ...我將一個excel文件保存到我的桌面上,然後將其插入到表單中。仍然得到相同的錯誤,但這是因爲strPath沒有通過任何東西....當我通過它說strPath =「」 – Justin 2010-03-30 15:14:52