-> Hier kostenlos registrieren
Hallo zusammen,
ich habe einen Temperaturverlauf über 24 h in Excel und will diese Werte in ein Array in der Steuerung schreiben.
Der Verlauf besteht aus 144 Werten (alle 10 min ein Wert).
Nach einer weile suchen hab ich hier im Forum auch eine Lösung über ein VB-Skript gefunden, die nach kleineren Anpassungen auch funktioniert:
Hier mal als Beispiel mit 11 Werten.
Jetzt hab ich nur drei Probleme mit dieser Lösung:
1. Es ist/war ein bissl zu aufwändig die 144 Zeilen zu tippen und meine VB-Kenntnisse sind zu gering um zu wissen wie es einfacher geht
2. Ich musste alle 10 oder 11 Werte ein "End With" machen das sonst Excel abschmiert
3. Die 144 Werte müssen in 2 Skripte aufgeteilt werden und nacheinander eingelesen werden, da sonst wieder Excel abschmiert
Wäre super wenn mir von Euch jemand helfen könnte vor allem das Problem mit der Auslastung (also das Excel sich nicht aufhängt) zu lösen.
Vieleicht gibts ja irgendwie ne Möglichkeit immer 10 Werte einzulesen, warten bis diese geschrieben sind und dann die nächsten einzulesen..?
Ich nutze TIA-Portal V13 SP1.
Danke schonmal für Eure Hilfe
Grüße
Seb
ich habe einen Temperaturverlauf über 24 h in Excel und will diese Werte in ein Array in der Steuerung schreiben.
Der Verlauf besteht aus 144 Werten (alle 10 min ein Wert).
Nach einer weile suchen hab ich hier im Forum auch eine Lösung über ein VB-Skript gefunden, die nach kleineren Anpassungen auch funktioniert:
Code:
Dim objExcelApp
Dim objWorkbooks
Dim objSheet
'zuweisen der Excel-Applikation
Set objExcelApp = CreateObject ("excel.application")
'zuweisen der Excel-Datei
Set objWorkbooks = objExcelApp.Workbooks
'vorhandene Tabelle öffnen
objWorkbooks.Open ("C:\Test\Tagesgang.xlsx")
'Auswahl der Tabelle 1
Set objSheet = objWorkbooks.Item(1).Worksheets(1)
With objSheet
'übertragen von Temperaturwerten
HmiRuntime.SmartTags("Licht_Temp_6_01_Temperaturwerte")(0)= .cells(2,3).value
HmiRuntime.SmartTags("Licht_Temp_6_01_Temperaturwerte")(1)= .cells(3,3).value
HmiRuntime.SmartTags("Licht_Temp_6_01_Temperaturwerte")(2)= .cells(4,3).value
HmiRuntime.SmartTags("Licht_Temp_6_01_Temperaturwerte")(3)= .cells(5,3).value
HmiRuntime.SmartTags("Licht_Temp_6_01_Temperaturwerte")(4)= .cells(6,3).value
HmiRuntime.SmartTags("Licht_Temp_6_01_Temperaturwerte")(5)= .cells(7,3).value
HmiRuntime.SmartTags("Licht_Temp_6_01_Temperaturwerte")(6)= .cells(8,3).value
HmiRuntime.SmartTags("Licht_Temp_6_01_Temperaturwerte")(7)= .cells(9,3).value
HmiRuntime.SmartTags("Licht_Temp_6_01_Temperaturwerte")(8)= .cells(10,3).value
HmiRuntime.SmartTags("Licht_Temp_6_01_Temperaturwerte")(9)= .cells(11,3).value
HmiRuntime.SmartTags("Licht_Temp_6_01_Temperaturwerte")(10)= .cells(12,3).value
End With
objWorkbooks.Close
objExcelApp.Quit
Set objExcelApp = Nothing
End Sub
Hier mal als Beispiel mit 11 Werten.
Jetzt hab ich nur drei Probleme mit dieser Lösung:
1. Es ist/war ein bissl zu aufwändig die 144 Zeilen zu tippen und meine VB-Kenntnisse sind zu gering um zu wissen wie es einfacher geht

2. Ich musste alle 10 oder 11 Werte ein "End With" machen das sonst Excel abschmiert
3. Die 144 Werte müssen in 2 Skripte aufgeteilt werden und nacheinander eingelesen werden, da sonst wieder Excel abschmiert
Wäre super wenn mir von Euch jemand helfen könnte vor allem das Problem mit der Auslastung (also das Excel sich nicht aufhängt) zu lösen.
Vieleicht gibts ja irgendwie ne Möglichkeit immer 10 Werte einzulesen, warten bis diese geschrieben sind und dann die nächsten einzulesen..?
Ich nutze TIA-Portal V13 SP1.
Danke schonmal für Eure Hilfe
Grüße
Seb