Makros verwenden, um ein Skript auszuführen
Um ein Skript durch die Verwendung eines Makros auszuführen, erstellen Sie das Makro in Visual Basic for Applications (VBA).
- Öffnen Sie die Datendatei, die mit dem Skript verknüpft ist, welches Sie ausführen möchten.
Wichtig: Vergewissern Sie sich, dass Sie eine Datei mit Makros, eine .xlsm-Datei, verwenden.
- Drücken Sie Alt+F11.
- Klicken Sie im VBA-Editor unter Microsoft Excel-Objekte auf das Blatt, welches die Daten enthält, die Sie ausführen möchten.
- Kopieren Sie den unten stehenden Code und fügen Sie ihn in das Fenster ein.
- Ersetzen Sie unten den Datendateipfad, den Skriptdateipfad, den Blattnamen und den Namen für die automatische Anmeldung mit den Informationen für Ihre Dateien und mit Ihrem Namen für die automatische Anmeldung.
- Klicken Sie auf Speichern und schließen Sie den VBA-Editor.
- Klicken Sie in Excel auf die Registerkarte Ansicht und dann auf Makros.
- Klicken Sie auf das Makro, das ausgeführt werden soll, und klicken Sie anschließend auf Ausführen.
Hinweis: Vergewissern Sie sich, dass das Excel-Add-In nicht aktiv ist (dass Sie nicht in
Query Makros
Ein veröffentlichtes Skript ausführen
- Add-In-Objekte definieren.
Dim StudioMacrosAddin, StudioMacros
- Add-In-Objekt aus Excel erhalten.
Set StudioMacrosAddin = Application.COMAddIns.Item ("WinshuttleStudioMacros.AddinModule")
- COM-Objekt von Add-In-Objekt erhalten.
Set StudioMacros = StudioMacrosAddin.Object.Macros
- Die auszuführende, veröffentlichte Datei wählen und weitere Ausführungseigenschaften definieren (siehe Eigenschaften für ein Query Add-In-Objekt).
Dim StudioMacros.PublishedFile = "Table_20150113_150602"
- Die veröffentlichte Skriptdatei öffnen.
StudioMacros.OpenPublishedScript
- Add-In-Objekt ausführen, um das Query Skript auszuführen.
StudioMacros.RunScript
Ein bestehendes Query Skript ausführen.
- Add-In-Objekte definieren.
Dim StudioMacrosAddin, StudioMacros
- Add-In-Objekt aus Excel erhalten.
Set StudioMacrosAddin = Application.COMAddIns.Item ("WinshuttleStudioMacros.AddinModule")
- COM-Objekt von Add-In-Objekt erhalten.
Set StudioMacros = StudioMacrosAddin.Object.Macros
- Das auszuführende Query Skript wählen und weitere Ausführungseigenschaften definieren (siehe Eigenschaften für ein Query Add-In-Objekt).
Dim strShuttleFile = "C:\Table_20140930_143519.qsq"
- Das auszuführende Skript öffnen.
StudioMacros.OpenScript (strShuttleFile)
- Add-In-Objekt ausführen, um das Query Skript auszuführen.
StudioMacros.RunScript
Eigenschaften für ein Query Add-In-Objekt
Ausführungseinstellungen oder erweiterte Ausführungsoptionen, die im Skript eingestellt sind, werden während der Ausführung des Makros nicht berücksichtigt. Diese müssen eingestellt werden, indem verschiedene Eigenschaften angewendet werden, die für das Add-In-Objekt eingeblendet wurden.
Eigenschaft/Funktion |
Wert(e)/Parameter |
Beschreibung |
PublishedFile |
Beschreibung der veröffentlichten Datei |
Wählt die auszuführende, veröffentlichte Datei aus |
OpenScript () |
Skriptdateipfad |
Wählt das auszuführende Skript aus |
OpenPublishedScript |
NV |
Öffnet das veröffentlichte Skript |
StartRow |
Zeilenanzahl |
Excel-Zeile, ab der heruntergeladene Datensätze geschrieben werden sollen |
RecordsToFetch |
Anzahl an Datensätzen |
Anzahl der Datensätze, die bei der Query Ausführung ausgegeben werden sollen |
WriteHeader |
True/False |
Schreibt Zuordnungskopfzeilen für die heruntergeladenen Daten |
ExtractAllRecords |
True/False |
Überschreibt RecordsToFetch und extrahiert alle Datensätze |
RunReason |
Ausführungsgrund-String |
Einen Grund für diese Ausführung angeben |
LogCell |
Zelle |
Zelle, in die Ausführungsprotokolle geschrieben werden sollen |
SheetName |
Name des Blattes |
Name des Blattes, der für die Ausführung verwendet werden soll |
AlfName |
AutoLogon-Datei |
Name der zu verwendenden automatischen Anmeldung |
RunType |
Ausführungsart |
0 – Ausführung, um einstellungsgemäß Datensätze einzuholen 1 – RecordsToFetch überschreiben und nur die ersten 50 Datensätze herunterladen |
RunScript |
NV |
Skript ausführen |
Beispielcode: Ein veröffentlichtes Skript ausführen
Sub RunPublishedQSQfile() '---------------------------------------------- ' Makro zur Verwendung des WinshuttleStudioMacros-Addins mit Code' 'RunPublishedfile-Makro ' Dim StudioMacrosAddin, StudioMacros On Error GoTo ErrHandler ' RUFEN SIE DAS ADD-IN-OBJEKT AUS EXCEL AB Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule") If StudioMacrosAddin Is Nothing Then MsgBox "Nicht in der Lage, das Objekt WinshuttleStudioMacros.AddinModule-Add-in zu initialisieren" Exit Sub End If ' Rufen Sie das COM-Objekt aus dem Add-In-Objekt ab Set StudioMacros = StudioMacrosAddin.Object.Macros If StudioMacros Is Nothing Then MsgBox "Nicht in der Lage, das Com-Objekt der Makros zu initialisieren“ Exit Sub End If ' Wählen Sie die auszuführende, veröffentlichte Datei StudioMacros.PublishedFile = "Table_20150113_150602" StudioMacros.StartRow = 2 ' Falls nicht eingestellt, werden die Datenbanken gemäß den Skripteinstellungen abgerufen StudioMacros.RecordsToFetch = 100 ' Bei True werden alle Datensätze abgerufen. Bei False wird StudioMacros.RecordsToFetch berücksichtigt StudioMacros.ExtractAllRecords = True ' Bei True werden während der Ausführung Kopfzeilen geschrieben StudioMacros.WriteHeader = True ' Aktivieren Sie RunReason, um einen Ausführungsgrund bereitzustellen. StudioMacros.RunReason = "Run Reason" 'Run = 0, RunOnlyFiftyRecords = 1 StudioMacros.RunType = 0 ' Rufen Sie die Ausführungsfunktion ab, um das veröffentlichte Skript zu öffnen StudioMacros.OpenPublishedScript ' Rufen Sie die Ausführungsfunktion ab, um das Skript auszuführen StudioMacros.RunScript Exit Sub ErrHandler: MsgBox Err.Description End Sub
|
Beispielcode: Ein bestehendes Query Skript ausführen
Sub RunNormalQSQfile() '---------------------------------------------- ' Makro zur Verwendung des WinshuttleStudioMacros-Addins mit Code '---------------------------------------------- ' ' RunNormalQsqFile-Makro ‚ Dim StudioMacrosAddin, StudioMacros On Error GoTo ErrHandler ' RUFEN SIE DAS ADD-IN-OBJEKT AUS EXCEL AB Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule") If StudioMacrosAddin Is Nothing Then MsgBox "Nicht in der Lage, das Objekt WinshuttleStudioMacros.AddinModule-Add-in zu initialisieren" Exit Sub End If ' Rufen Sie das COM-Objekt aus dem Add-In-Objekt ab Set StudioMacros = StudioMacrosAddin.Object.Macros If StudioMacros Is Nothing Then MsgBox "Nicht in der Lage, das COM-Objekt der Makros zu initialisieren“ Exit Sub End If StudioMacros.StartRow = 2 ' Falls nicht eingestellt, werden die Datenbanken gemäß den Skripteinstellungen abgerufen StudioMacros.RecordsToFetch = 100 ' Bei True werden alle Datensätze abgerufen. Bei False wird StudioMacros.RecordsToFetch berücksichtigt StudioMacros.ExtractAllRecords = True ' Bei True werden während der Ausführung Kopfzeilen geschrieben StudioMacros.WriteHeader = True ' Aktivieren Sie RunReason, um einen Ausführungsgrund bereitzustellen. StudioMacros.RunReason = "Run Reason" 'Run = 0, RunOnlyFiftyRecords = 1 StudioMacros.RunType = 0 strShuttleFile = "C:\Users\ssingh\Documents\Winshuttle\Studio\Script\Table_20140930_143519.qsq" ' Rufen Sie die Ausführungsfunktion ab, um das spezifizierte Skript zu öffnen StudioMacros.OpenScript (strShuttleFile) ' Rufen Sie die Ausführungsfunktion ab, um das Skript auszuführen StudioMacros.RunScript Exit Sub ErrHandler: MsgBox Err.Description End Sub
|
Bekannte Probleme
- Makros, die in Transaction oder Query v10.x erstellt wurden, werden nicht automatisch in das Studio v11 Format konvertiert. Makros im Studio v11 Format sind nicht mit v10.x kompatibel. Um die Makros auszuführen, müssen Sie manuell konvertiert werden.
- Während Sie Makros verwenden, sollten die Winshuttle Add-Ins nicht geladen werden (Sie sollten nicht bei Foundation angemeldet sein). Die Winshuttle Add-Ins können aktiviert werden.
- ExtractAllRecords ruft alle Datensätze ab, selbst wenn die Anzahl der Datensätze die erlaubte Höchstzahl für herunterzuladende Datensätze übersteigt.
- Die Startzeile ist immer 2, außer Sie geben eine andere Zeile an.
- Datendateien müssen den Data Review Workflow anwenden, um durch Makros im Foundation Modus ausgeführt zu werden.
- In Foundation abzuspeichern funktioniert nicht, wenn ein Makro dazu verwendet wird, eine Datendatei im Foundation Modus auszuführen.