Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 40

Thema: Öffnen un Schliessen einer Excel-Datei mit WinCC (VBS)

  1. #21
    Registriert seit
    01.05.2009
    Beiträge
    74
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wäre nett wenn du das mal posten könntest. Vielleicht kann ich meine Programme ja auch noch optimieren

  2. #22
    Registriert seit
    30.01.2009
    Beiträge
    442
    Danke
    25
    Erhielt 48 Danke für 44 Beiträge

    Standard

    Zitat Zitat von uz71 Beitrag anzeigen
    Datei xy.xls öffnen

    Dim objExcelApp
    Set objExcelApp = CreateObject("excel.Application")
    objExcelApp.Visible = 0 'Excel sichtbar oder nicht sichtbar
    objExcelApp.Workbooks.Open "c:\xy.xls" '


    Datei xy.xls schließen

    objExcelApp.Workbooks.Close 'Exceldatei schlissen
    objExcelApp.Quit 'Excel schlissen
    Set objExcelApp = Nothing 'Variable freigeben


    Es gibt einen recht hilfreichen Trick:
    Man zeichnet sich in Excel eine Makro auf kann dann die Befehle in WinCC VBS nutzen.

    Gruss
    Hallo Fachmänner,

    habe dies hier mal umgesetzt, da ich dieses Thema aktuell auch brauche.
    Grundsätzlich funktioniert mein Script, Werte werden gelesen und auf die S7-Variable geschrieben.
    Aber:
    Die Excelliste die ich per Script öffne und dann am Ende schliesse, wird aktualisiert und muss gepeichert werden, gibt es da ein Befehl für?
    Weiteres Problem ist, das im Task-Manager pro Script-Durchlauf eine Excel.exe als Prozess startet und auch bestehen bleibt, heißt der Rechner ist irgendwann "zu", was kann man da machen?

    Gruß
    Move

  3. #23
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    @Move:
    wenn du die Sequenz so beendest :
    Code:
    objExcelApp.Workbooks.Close True 
    objExcelApp.Quit
    ... dann wird das Workbook geschlossen ohne weitere Rückfrage.
    Das "objExcelApp.Quit" beendet die Excel-Instanz im Task-Manager. Wenn die bei dir im Speicher bleibt dann hast du die Befehle wohl anscheinend nicht korrekt angewendet oder eingegeben.

    Gruß
    Larry

  4. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Move (01.04.2011)

  5. #24
    Registriert seit
    01.05.2009
    Beiträge
    74
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also die Befehle aus dem Makrorecorder kann man nicht ohne weiteres übernehmen.

    Viele Befehle aus VBA stehen in VBS nicht zur Verfügung. Das muss man dann umstricken. Hab auch alles hingekiregt was ich wollte auch wenns manhcmal stunden gedauert hat.

  6. #25
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    @Santero:
    Das hatte in dem Beispiel von mir nichts mit dem Makro-Rekorder zu tun sondern bezieht sich auf das auch hier im Forum von mir veröffentlichte Code-Beispiel, dass auch in der FAQ zu finden und nachzulesen ist.
    Der Code daraus war / ist funktionsfähig (nur war die Excel-Geschichte insgesamt für mich nicht schnell genug).

    Gruß
    Larry

  7. #26
    Registriert seit
    01.05.2009
    Beiträge
    74
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Oh sorry da war aus dem zusammenhang. Es wird ja öfters mal gepostet das man irgendwas generiert und sich dann die Befehel aus dem Makrorecorder nimmt. Deswegen meinte ich , dass das nicht einfach so geht

  8. #27
    Registriert seit
    30.01.2009
    Beiträge
    442
    Danke
    25
    Erhielt 48 Danke für 44 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    @Move:
    wenn du die Sequenz so beendest :
    Code:
    objExcelApp.Workbooks.Close True 
    objExcelApp.Quit
    ... dann wird das Workbook geschlossen ohne weitere Rückfrage.
    Das "objExcelApp.Quit" beendet die Excel-Instanz im Task-Manager. Wenn die bei dir im Speicher bleibt dann hast du die Befehle wohl anscheinend nicht korrekt angewendet oder eingegeben.

    Gruß
    Larry
    Nun ja,
    was soll ich sagen, kaum macht man's richtig funzt es auch schon
    Vielen vielen Dank...

  9. #28
    Registriert seit
    30.01.2009
    Beiträge
    442
    Danke
    25
    Erhielt 48 Danke für 44 Beiträge

    Standard

    Ups,

    zu früh gefreut:
    Hier mal mein Vorhaben:
    Das schliessen funktioniert aber die Excel.exe in der Task bleibt erhalten
    Die Excel müsste durch WinCC bei mir nicht geöffnet werden, reines lesen reicht.
    Nur wie setzt man das um, ich finde immer nur die Open-Befehle
    Gruß
    Move

    Option Explicit
    Function action
    Dim excel, wbActive, wsActive
    'Create an Excel-Application object
    Set excel = CreateObject("Excel.Application")
    excel.Visible = 0
    Set wbActive = excel.Workbooks.Open("D:\Postfach\KIS Wetterprognose WinCC.xls")
    Set wsActive = wbActive.Worksheets("Tabelle1")
    '----------------- WinCC Variable schreiben --------------------
    'wsActive.cells(2,3) = Zeile 2, Spalte 3

    Dim objTag

    Set objTag = HMIRuntime.Tags("Temp_00_T0_B2") ' Temperatur 0:00 Uhr
    objTag.Value = wsActive.cells(2,2).Value
    objTag.Write

    Set objTag = HMIRuntime.Tags("Temp_01_T0_B3") ' Temperatur 1:00 Uhr
    objTag.Value = wsActive.cells(3,2).Value
    objTag.Write

    ' etc...

    excel.Workbooks.Close True 'Exceldatei schliessen
    excel.Quit 'Excel schliessen
    Set excel = Nothing 'Variable freigeben
    End Function
    Geändert von Move (01.04.2011 um 21:08 Uhr)

  10. #29
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Naja ...
    Es geht nur so. Mit "CreateObject" wird Excel gestartet. Mit dem "Open" wird das Workbook aufgeschlagen (geöffnet). Was du dann damit machst bleibt dir überlassen. Anschließend schließt du das Workbook wieder und beendest die Applikation.

    Wenn du allerdings (wie du schreibst) nur den Inhalt des Workbooks liest dann verstehe ich nicht, weshalb Excel eine Änderung der Datei feststellt.
    Kann es sein, dass du das gleiche Script ggf. noch ein weiteres Mal aufrufst ? Wie ist das bei dir organisiert ?
    Genauso muß der "excel.Quit" die gestartete Instanz aus dem Taskmanager entfernen. Auch das deutet für mich auf ein zweites Aufrufen von Excel hin.

    Gruß
    Larry

  11. #30
    Registriert seit
    30.01.2009
    Beiträge
    442
    Danke
    25
    Erhielt 48 Danke für 44 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    ja das ganze sieht so aus, das die Exceldatei die geöffnet wird Verweise auf eine andere Excelliste besitzt. Somit aktualisiert sie sich und will beim Schliessen gespeichert werden.
    Sollte das das Probelm sein?
    Gruß
    Move

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 02.03.2009, 13:04
  2. WinCC Flex - WordPad Datei öffnen
    Von eYe im Forum HMI
    Antworten: 15
    Letzter Beitrag: 28.05.2008, 08:29
  3. WinCC: Faceplate schliessen mit C-Sript
    Von kipphase im Forum HMI
    Antworten: 0
    Letzter Beitrag: 08.04.2008, 07:46
  4. WinCC: Meldearchiv per Skript schliessen
    Von Grosser im Forum HMI
    Antworten: 1
    Letzter Beitrag: 02.05.2007, 06:42
  5. WinCC TagLogging Datei öffnen
    Von Anonymous im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 11.04.2005, 20:11

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •