Pregunta

Vamos a decir que tengo una hoja de cálculo de Excel incrustado en un formulario de Microsoft Access. Me llamo el marco de objeto

ExcelFrame

y añadir un cuadro de texto en la forma llamada

txtA1

y añadir un botón en la forma llamada

cmdInsert

quiero escribir "Hello World" en el cuadro de texto, haga clic en el botón y hacer que aparezca en la celda A1 de la hoja de cálculo. VBA lo puedo utilizar para lograr esto?

Gracias

¿Fue útil?

Solución

Puede automatizar Excel, escriba su valor a la hoja de trabajo, a continuación, actualizar el marco de objeto.

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

Editar : El ejemplo se basa en un archivo de libro externo que es vinculado como la fuente para marco de objeto del formulario.

Para vincular una hoja de cálculo, seleccione la opción " Crear desde archivo" botón de radio, compruebe el " Enlace " casilla de verificación y de exploración para seleccionar el libro. Esa es la manera que lo hice con Access 2007. Por lo que recuerdo, fue similar con Access 2003.

Otros consejos

Nunca es demasiado tarde, ¿verdad?

disponer que ya se ha creado el objeto de Excel (como en 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"

Tenga en cuenta que este código requiere una referencia a MS Excel VBA.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top