سؤال

دعنا نقول أن لدي جدول بيانات Excel مضمن على نموذج وصول Microsoft. أدعو إطار الكائن

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"

لاحظ أن هذا الرمز يتطلب إشارة إلى MS Excel في VBA.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top