2016-06-29 17 views
0

Ich erstelle ein Skript in HP UFT 12, das die Überprüfung der Rasterdaten anhand einer CSV-Datei durchführt und die Ergebnisse in einer Excel-Datei mit zwei Arbeitsblättern speichert.
Ich benutze Excel für dieses, weil es für den Benutzer viel klarer ist, da es Zellformatierung erlaubt, ist es einfacher, die Daten zu vergleichen und so weiter.Wie Sie Arbeitsmappe speichern und mit TITUS (oder einem anderen Dokumentklassifikations-Add-In) Popup umgehen?

Mein Code funktioniert in meinem Computer, aber mein Client hat TITUS-Dokumentklassifikation-Add-In installiert, so dass jedes Mal, wenn sie mein Skript ausführen, wegen der TITUS-Popup-Meldung hängt, die den Benutzer nach dem Speichern fragt . Die Nachricht wird dem Benutzer wahrscheinlich wegen objExcel.DisplayAlerts = False nicht angezeigt, aber das Skript wird nicht fortgesetzt.

Im Folgenden ist der Teil meines Codes, der mit der Sache zusammenhängt (ich habe den größten Teil des Codes aus Gründen der Vertraulichkeit weggelassen).

Dim objExcel : Set objExcel = CreateObject("Excel.Application") 
Dim objWorkbook : Set objWorkbook = objExcel.Workbooks.Add 
objExcel.Visible = False 
Dim wsGrid : Set wsGrid = objWorkbook.Worksheets(1) 
wsGrid.Name = "Grid Data" 
Dim wsExported : Set wsExported = objWorkbook.Worksheets.Add 
wsExported.Name = "Exported Data" 

' Internal code to perform validation and fill worksheets ... 

objExcel.DisplayAlerts = False 
objWorkbook.SaveAs "C:\my_folder_path\my_file_name.xls" ' This is where it hangs in machines where the add-in is installed 
objWorkbook.Close 
objWorkbook.Quit 
Set objWorkbook = Nothing 
Set objExcel = Nothing 

Ich habe online gesucht, habe aber bis jetzt noch nichts gefunden. Ich habe gefunden this und this, aber sie sind mit TITUS für Outlook verwandt und in keiner der beiden ist das Problem richtig gelöst.
Weiß jemand, wie man das löst, oder kann mich auf ein Forschungsmaterial verweisen, um mir zu helfen, dieses Problem zu lösen?

Vielen Dank im Voraus.

+0

Wenn dies in UFT ausgeführt wird, können Sie das entsprechende Popup nicht zum Objekt-Repository hinzufügen und so behandeln? – Dave

+0

@Dave, das ist eine Sache, die ich noch nicht ausprobiert habe. Ich habe das Add-In nicht auf meinem Computer installiert. Außerdem ist das Objekt zur Laufzeit nicht sichtbar. Wäre es möglich, die Combobox- und Schaltflächenobjekte zu bearbeiten, obwohl sie nicht sichtbar sind? Wäre ich in der Lage, so etwas wie ein 'objButton.Click' in einer Schaltfläche auszuführen, die nicht sichtbar ist. –

+1

Wenn es als Add-in zu Excel ausgeführt wird, sollten Dialoge über Excel selbst zugänglich sein - vielleicht gibt es eine VBA-Methode, die Sie implementieren können, um das Popup programmatisch zu behandeln? Vielleicht kannst du das Addin auf deinem Dev-Rechner installieren, um den besten Weg zu finden, damit umzugehen? Wenn alles andere fehlschlägt, können Sie immer einen 'SendKeys'-Aufruf verwenden, um eine' Enter'-Meldung an die Excel-App zu senden, die das Popup hoffentlich löschen würde. – Dave

Antwort

3

Wie lächerlich einfach, wie es aussieht (ich weiß nicht, wie ich nicht von dieser vorher gedacht haben), schaffe ich einfach mein Problem zu lösen, indem objExcel.EnableEvents = False Zugabe vor dem Speichern der Datei:

objExcel.DisplayAlerts = False 
objExcel.EnableEvents = False ' this is the problem solver for the matter! 
objWorkbook.SaveAs "C:\my_folder_path\my_file_name.xls" 
objExcel.EnableEvents = True ' Not sure if this statement is necessary, though 
objWorkbook.Close 
objWorkbook.Quit 
Set objWorkbook = Nothing 
Set objExcel = Nothing 
0

I auf das Verhalten von Titus bin kein VBA-Coder, aber meine Freunde waren auf diesem Arbeits

die Lösung, die wir war

es fordert Sie auf jede neue Arbeitsmappe zu klassifizieren gefunden, wenn u speichern. Beachten Sie, dass es sich nicht um eine bereits gespeicherte Arbeitsmappe handelt. So haben wir eine leere Arbeitsmappe und gespeichert es (mit der erforderlichen Klassifikation)

den Code geändert, dass Arbeitsmappe zu nehmen und Daten genau und mit speichern als die erforderlichen Dateien

es ohne funktioniert reibungslos zu schaffen Probleme.

+0

Hmm, also öffnen Sie die leere Arbeitsmappe bei jeder Ausführung, fügen Sie den Inhalt ein und speichern Sie ihn dann? So funktioniert es?Ich denke immer noch, dass die Lösung, die ich gefunden habe, praktischer ist, da diese manuelle Aktion nicht erforderlich ist, da jeder, der mein Skript ausführen würde, vorher eine solche Arbeitsmappe auf ihren Computern erstellen müsste ... –