<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo, ich schaue mir ein Beispielprogramm an, das in JMP 11 enthalten ist:
C:\Programme\SAS\JMP\11\Samples\Automation\Visual Basic Samples\Data Table .NET\datatab.vb
Da ich kein Visual Studio (nur Excel) habe, habe ich "datatab.vb" mit Notepad geöffnet und versucht, die Prozedur "Subset_Click" von Visual Basic (VB) in Visual Basic for Applications (VBA) zu übersetzen. Bitte sehen Sie sich das Codebeispiel unten an.
Ich habe ein paar Fragen:
- Warum verursacht "doc = app.OpenDocument(fname)" einen Laufzeitfehler "Object variable not set"?
- Wie funktionieren die Datatable-Subset-Methoden? Ich kann diese im Excel-VBA-Objektbrowser sehen, aber es gibt nicht viele Details.
- Wie wird das Datatable-Handle verwendet?
Vielen Dank für Ihre Hilfe.
'-------------------------------------------------------- -------
„Teilen Sie die große Klasse nach Gewicht und Größe ein
'Neues Datentabellen-Handle in NewDT speichern, dann Tabelle als subset.jmp auf der Festplatte speichern
'-------------------------------------------------------- -------
Sub-Subset()
Dim-App Als JMP.Application
Dim doc Als JMP.Document
Dim dt Als JMP.DataTable
Dim newDT als JMP.DataTable
Dim dtDoc als JMP.Document
Dim dir As String
Dim fname als Zeichenfolge
'JMP starten
App festlegen = CreateObject("JMP.Application")
app.Sichtbar = True
'Datentabelle abrufen
dir = "C:\Programme\SAS\JMP\11\Samples\Data\"
fname = dir & "Große Klasse.jmp"
doc = app.OpenDocument(fname)
dt = doc.GetDataTable
'Teilmengendaten
dt.Aktivieren
dt.SubsetSetRandomSelection(2, False)
dt.SubsetStratifyAddColumn ("Alter")
dt.AddToSubList ("Name")
dt.AddToSubList ("Gewicht")
dt.AddToSubList ("Höhe")
newDT = dt.Subset
dtDoc = newDT.Dokument
dtDoc.SaveAs ("C:\JMP\subset.jmp")
End Sub
'-------------------------------------------------------- -------
Wow, das JMP-Installationsverzeichnis enthält eine Menge guter Dinge! Die Methodenbeschreibungen im Automatisierungs-Referenz-PDF sind sicherlich hilfreich.
Zu meinen ursprünglichen Fragen:
- Das Schlüsselwort "Set" wurde benötigt, um der Variablen eine Objektreferenz zuzuweisen.
- Ihr Kommentar und Ihr Bild haben mir geholfen, den Subset-Code zu verstehen.
Danke noch einmal!
Hallo JB,
Im Documentation-Verzeichnis, in dem JMP 11 installiert ist, ist eine vollständige Automatisierungsreferenz installiert.Wenn Sie eine fehlerhafte Referenz erhalten, bedeutet dies, dass JMP entweder nicht gestartet werden konnte (App-Objekt ist leer) oder die Big Class-Datentabelle nicht finden konnte und diese Referenz leer ist.Bitte beachten Sie, dass das Verzeichnis bei Verwendung von JMPPro anders ist als JMPPRO\11 und nicht JMP\11.Dasselbe gilt für andere JMP-Produkte.
Diese Stichprobe macht eine Teilmenge mit einer zufälligen Stichprobengröße von 2. Stratify ist eingestellt, wobei die Altersspalte für die geschichtete Stichprobe verwendet wird.Nur die ausgewählten Spalten werden ausgegeben.In diesem Fall sind Name, Größe und Gewicht die ausgewählten Spalten.Ich füge ein Bild bei, wie dies aussehen würde, wenn Sie dies interaktiv tun würden.
Ich hoffe das hilft,
Brian Corcoran
JMP-Entwicklung