| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Excel öffnen mit Workbook (6082 mal gelesen)
|
Animexx Mitglied

 Beiträge: 15 Registriert: 15.08.2008 Windows XP SP2 Catia V5 R16 Visual Studie 2008 Pro
|
erstellt am: 13. Sep. 2008 11:58 <-- editieren / zitieren --> Unities abgeben:         
Hallo ich versuche gerade mit VB 2008 Express Edition ein kleines Programm zu schreiben. Dieses soll von CATIA V5 bilder machen dann auf C:\ kurz zwischenspeichern und dann in Excel einfügen. Bis jetzt sieht der Code wie folgt aus: Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim CATIA As New Object CATIA = GetObject(, "CATIA.Application") Dim TempPfad TempPfad = "C:\" Dim fso fso = CreateObject("Scripting.FileSystemObject") Dim Dateiname Dateiname = fso.GetTempName() TempPfad = TempPfad + Dateiname + ".bmp" Dim Viewer1 Viewer1 = CATIA.ActiveWindow.ActiveViewer Viewer1.Update() Dim Window1 Window1 = CATIA.activeWindow
Dim WindowLayout1 WindowLayout1 = Window1.Layout 'Window1.Layout = catwindowgeomonly CATIA.startcommand("CompassDisplayOff") Dim color0(2) Dim color(2) 'Hintergundfarbe in Weiß setzen Viewer1.GetBackgroundColor(color0) color(0) = 1 color(1) = 1 color(2) = 1 Viewer1.PutBackgroundColor(color) Viewer1.CaptureToFile(5, TempPfad)
Dim xlApp As Excel.Application Dim xlWB As Excel.Workbook xlApp = CreateObject("Excel.application") xlApp.Visible = True ' Excel anzeigen xlWB.Workbooks.add() Ich hab schon hinbekommen, dass Excel startet aber ich krieg es nicht hin Workbook zu starten! kann mir wer helfen? Bei xlWB.Workbooks.add()kommt ne Meldung ie Objektvariable oder die With-Blockvariable wurde nicht festgelegt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Ehrenmitglied V.I.P. h.c. Arbeiter ツ

 Beiträge: 2897 Registriert: 06.07.2001 what i think? I think, no skill
|
erstellt am: 13. Sep. 2008 14:04 <-- editieren / zitieren --> Unities abgeben:          Nur für Animexx
|
Animexx Mitglied

 Beiträge: 15 Registriert: 15.08.2008
|
erstellt am: 13. Sep. 2008 14:33 <-- editieren / zitieren --> Unities abgeben:         
|
Thomas Harmening Ehrenmitglied V.I.P. h.c. Arbeiter ツ

 Beiträge: 2897 Registriert: 06.07.2001 what i think? I think, no skill
|
erstellt am: 13. Sep. 2008 15:20 <-- editieren / zitieren --> Unities abgeben:          Nur für Animexx
Mit DIM werden Variablen deklariert. würde das laufen? ich habe hier kein VB2008 und auch kein V5, nur Excel  Code: Sub XLstart-neuesblatt-umbenennen() Dim xlApp As Excel.Application Dim xlWB As Excel.Workbooks Dim xlWS As Excel.WorksheetSet xlApp = CreateObject("Excel.Application") Set xlWB = xlApp.Workbooks xlApp.Visible = True ' Excel anzeigen xlWB.Add (xlWBATWorksheet) 'neues Blatt Set xlWS = xlApp.ActiveWorkbook.ActiveSheet xlWS.Name = "Import" ' Name für das aktive Blatt vergeben End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Ehrenmitglied Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2010, Rasterdesign MapGuide 6.5 - 2010 Oracle 9i,10g Enterprise autodesk Topobase 2-2010 VS6, VS.net 2010
|
erstellt am: 14. Sep. 2008 18:01 <-- editieren / zitieren --> Unities abgeben:          Nur für Animexx
Hallo, in .net gibt es kein SET mehr. Du schreibst zwar das du mit VB 2008 arbeitest, verwendest aber eigentlich nur Funktionen aus VBA. Dein Code
Code: Dim TempPfad TempPfad = "C:\" Dim fso fso = CreateObject("Scripting.FileSystemObject") Dim Dateiname Dateiname = fso.GetTempName() TempPfad = TempPfad + Dateiname + ".bmp"
könnte so viel kürzer sein
Code: Dateiname = system.io.path.getTempFileName()
Trotzdem muss du aus Thomas Beispiel die SET's einfach rauslassen. Wilfried Stelberg
------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rudeboyc Mitglied Ingenieur
 Beiträge: 6 Registriert: 10.07.2009
|
erstellt am: 10. Jul. 2009 13:59 <-- editieren / zitieren --> Unities abgeben:          Nur für Animexx
Hallo ich habe den Code von Thomas unter VB2008 ausprobiert. leider Öffnet nur das Excel Programm und danach zeigt er mir an das dieser Name xlWB.AddxlWBATWorksheet nicht deklariert ist. kann mir einer sagen was da falsch ist Gruß Christoph Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Ehrenmitglied Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2010, Rasterdesign MapGuide 6.5 - 2010 Oracle 9i,10g Enterprise autodesk Topobase 2-2010 VS6, VS.net 2010
|
erstellt am: 10. Jul. 2009 14:07 <-- editieren / zitieren --> Unities abgeben:          Nur für Animexx
Hallo Christoph, herzlich willkommen auf CAD.DE Wenn du diesen Code verwendet hast Zitat: Original erstellt von Thomas Harmening: Sub XLstart-neuesblatt-umbenennen() Dim xlApp As Excel.Application Dim xlWB As Excel.Workbooks Dim xlWS As Excel.WorksheetSet xlApp = CreateObject("Excel.Application") Set xlWB = xlApp.Workbooks xlApp.Visible = True ' Excel anzeigen xlWB.Add (xlWBATWorksheet) 'neues Blatt Set xlWS = xlApp.ActiveWorkbook.ActiveSheet xlWS.Name = "Import" ' Name für das aktive Blatt vergeben End Sub
dann ist xlWBATWorksheet ein String mit dem Workbook Namen.
Code: Dim xlWBATWorksheet as string = "C:\TEMP\BLABLA.XLS"
Wilfried Stelberg ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de
[Diese Nachricht wurde von Stelli1 am 10. Jul. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rudeboyc Mitglied Ingenieur
 Beiträge: 6 Registriert: 10.07.2009
|
erstellt am: 10. Jul. 2009 14:11 <-- editieren / zitieren --> Unities abgeben:          Nur für Animexx
Danke für die antwort aber funktionieren tut es noch nicht. das Programm makiert mir die Zeile xlWB.Add(xlWBATWorksheet) und öffnet ein fenster auf dem steht Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD)) liegt das an der Bibliothek die man einfügt? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rudeboyc Mitglied Ingenieur
 Beiträge: 6 Registriert: 10.07.2009
|
erstellt am: 10. Jul. 2009 15:08 <-- editieren / zitieren --> Unities abgeben:          Nur für Animexx
|
Stelli1 Ehrenmitglied Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2010, Rasterdesign MapGuide 6.5 - 2010 Oracle 9i,10g Enterprise autodesk Topobase 2-2010 VS6, VS.net 2010
|
erstellt am: 10. Jul. 2009 15:14 <-- editieren / zitieren --> Unities abgeben:          Nur für Animexx
Hallo Christoph, hier mal ein Beispiel
Code: Imports Microsoft.Office.Interop.ExcelPublic Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim xlApp As Microsoft.Office.Interop.Excel.Application Dim xlWorkBook As Workbook Dim xlWorkSheet As Worksheet Dim i As Integer Dim strTempname As String strTempname = System.IO.Path.GetTempFileName ' Excel Application Object erzeugen ' ist unter COM Verweisen eingebunden xlApp = New Microsoft.Office.Interop.Excel.Application xlApp.Visible = True ' Workbook hinzufügen (ohne Template) xlWorkBook = xlApp.Workbooks.Add() ' Worksheet hinzufügen xlWorkSheet = xlWorkBook.Worksheets.Add xlWorkSheet.Name = "My first Workshet" ' erste Zelle beschreiben xlWorkSheet.Cells(1, 1) = "Hallo hier ist die Zelle A1" ' Auflistung der Worksheets eintragen i = 3 xlWorkBook.ActiveSheet.cells(i, 1) = "Liste der Worksheets" For Each xlWorkSheet In xlWorkBook.Worksheets xlWorkBook.ActiveSheet.cells(i, 2) = xlWorkSheet.Name i = i + 1 Next ' Speichern xlWorkBook.SaveAs(strTempname) End Sub End Class
Wilfried Stelberg------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rudeboyc Mitglied Ingenieur
 Beiträge: 6 Registriert: 10.07.2009
|
erstellt am: 10. Jul. 2009 15:26 <-- editieren / zitieren --> Unities abgeben:          Nur für Animexx
|
Stelli1 Ehrenmitglied Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2010, Rasterdesign MapGuide 6.5 - 2010 Oracle 9i,10g Enterprise autodesk Topobase 2-2010 VS6, VS.net 2010
|
erstellt am: 10. Jul. 2009 16:10 <-- editieren / zitieren --> Unities abgeben:          Nur für Animexx
Hallo Christoph, es gibt in deinem Profil auf CAD.DE die Möglichkeit eine System Info auszufüllen. Da könnest du vielleicht eintagen was du für ein Office hast. Hab hier im Urlaub gerade nur vb.net 2005 und Office 2003. Hast du den Verweis richtig eingetragen ? Ansonsten kannst du die Excel "Sachen" auch mal durch den Typ Object ersetzen und mit Late Binding arbeiten. Dann musst du dein Excel Objekt aber mit
Code: xlApp = CreateObject("Excel.Application")
holen.Wilfried Stelberg ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rudeboyc Mitglied Ingenieur
 Beiträge: 6 Registriert: 10.07.2009
|
erstellt am: 10. Jul. 2009 16:34 <-- editieren / zitieren --> Unities abgeben:          Nur für Animexx
hallo stelli1 also ich nutze Office 2002 und vb.net 2008. ich habe mir den Objektbrowser die members von Excel angesehen die beschreibung von worbooks.add lautet da: Add([]) der befehl scheint richtig zu sein trotz allem funktioniert es nicht.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rudeboyc Mitglied Ingenieur
 Beiträge: 6 Registriert: 10.07.2009
|
erstellt am: 10. Jul. 2009 16:59 <-- editieren / zitieren --> Unities abgeben:          Nur für Animexx
|