Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Vba Makro Code: So erstellt man ein Excel Workbook und Sheet zur Laufzeit ohne Excel Verweis

14.08.2019 (👁665)

Vba Makro Code: So erstellt man ein Excel Workbook und Sheet zur Laufzeit ohne Excel Verweis

So erstellt man ein Excel Dokument aus einer anderen Microsoft Office Anwendung wie Word oder Access, ohne dass man hierzu in der VBA Anwendung einen Verweis auf die Excel Version machen müsste

Erst erstellt man ein Object als Excel.Application (das ist Late Binding)

Dabei schaut Windows nach, ob es ein Programm in der Registry mit Excel.Application findet

'Dim objExcel As New Excel.Application

Dim objExcel As Object

Set objExcel = CreateObject("Excel.Application")

Dann erstellt man ein neues Workbook als neutrales Object, indem man dem Excel Programm sagt, es solle aus sich selbst unter .Workbooks ein neues anfügen.

Bei dieser Form der Programmierung schaut das Programm erst zur Laufzeit nach, ob es überhaupt Workbooks hat und den Begriff verwenden kann.

    Dim objWorkbook As Object

    Set objWorkbook = objExcel.Workbooks.Add

Diesem Workbook fügt man dann ein Sheet hinzu in der gleichen weise.

    Dim objSheet As Object

    Set objSheet = objWorkbook.Sheets.Add

    'not Set objSheet = CreateObject("Excel.Worksheet")

mit Late Binding,  

Option Compare Database

Option Explicit On

Private Sub BtnExcel_Click()

    'Dim objExcel As New Excel.Application

    Dim objExcel As Object

    Set objExcel = CreateObject("Excel.Application")

   

    objExcel.Workbooks.Add

    objExcel.DisplayAlerts = False

    'Dim objWorkbook As Workbook '*Early Binding on Excel.Reference

    Dim objWorkbook As Object

    Set objWorkbook = objExcel.Workbooks.Add

    '*not CreateObject("Excel.Workbook")

   

    Dim objSheet As Object

    Set objSheet = objWorkbook.Sheets.Add

    'not Set objSheet = CreateObject("Excel.Worksheet")

   

   

    objSheet.Cells(1, 1).Value = "Test Excel"

    objExcel.ActiveWorkbook.SaveAs CurrentProject.Path & "\Demo_Access_Excel"

    objExcel.Quit

    Set objExcel = Nothing

   

End Sub