Come eseguire lo script jsl in excel VBA?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Prova a eseguire lo script jsl nell'ambiente Excel VBA. lo scopo dello script è aprire due tabelle di dati csv e unirle insieme.
lo script piace di seguito:
SubloadData()
Dim myjmp As JMP.Application
Dim jmp_doc As JMP.Document
Dim jmp_BL As JMP.DataTable
Dim jmp_dt As JMP.DataTable
Dim jmp_dtFinal As JMP.DataTable
Dim jmpstr As String
Imposta myjmp = CreateObject("JMP.Application")
myjmp.Visible = Vero
Imposta jmp_doc = myjmp.OpenDocument("C:\Users\xxxxx\Desktop\BL.csv")
Imposta jmp_BL = jmp_doc.GetDataTable
Imposta jmp_doc = myjmp.OpenDocument("C:\Users\xxxxx\Desktop\cbData.csv")
Impostare jmp_dt = jmp_doc.GetDataTable
jmpstr = "jmp_dtFinal= jmp_dt << Unisci(con(jmp_BL),Unisci colonne con lo stesso nome,In base a colonne corrispondenti( :col1 = :col2, :col2= :col2),Elimina multipli( 0, 1 ),Name( ""Includi non corrispondenze"" )(1, 1),);"
myjmp.RunCommand jmpstr
Le due tabelle di dati possono essere aperte correttamente, ma solo la funzione di join, non funziona. Qualcuno può aiutare sulla sceneggiatura?
Grazie!
Ri: Come eseguire lo script jsl in excel VBA?Sì, verrà aggiunto in JMP 13. Grazie,
Brian
Ri: Come eseguire lo script jsl in excel VBA?, Sperando che venga aggiunto nella prossima versione di jmp.
Grazie!
Ri: Come eseguire lo script jsl in excel VBA?Mi dispiace, ma quell'opzione non è ancora entrata in Automation.È possibile eliminare le colonne nella tabella dei risultati utilizzando l'automazione.Inoltre, se non ti dispiace eseguire l'unione della tabella in una delle tabelle esistenti, potresti essere in grado di utilizzare invece UpdateTable.
Brian
Ri: Come eseguire lo script jsl in excel VBA?Ciao, Brian
Grazie mille per l'informazione.
Ho un'altra domanda su questo data join. Quando ho impostato le opzioni di partecipazione alla partita come di seguito per eliminare i multipli e cinludere le non corrispondenze sia nelle tabelle principali che in quelle con.
DT4.SetJoinMatchOptions False, True
DT5.SetJoinMatchOptions Vero, Vero
Ma il risultato viene fuori come di seguito, sembra che queste due tabelle si uniscano, ma non si uniscano con la stessa colonna del nome.

Normalmente nell'impostazione di join della tabella dati jmp, esiste un'opzione "Unisci colonna con lo stesso nome", se la controlli, la tabella unirà le colonne con lo stesso nome. Ma in questa funzione di join VBA:
Imposta NewDT2 = DT4.Join(DT5, JMP.dtJoinConstants.dtJoinMatching, "Join Table")
Non esiste tale impostazione.
Quindi sai come ottenere la funzione di "nerge colonna con lo stesso nome"?
Grazie!

Ri: Come eseguire lo script jsl in excel VBA?CIAO,
L'uso di "Set" per gli oggetti può essere facoltativo in Visual Studio quando si usa VB, quindi gli esempi non lo usano sempre.Sono stati anche scritti per essere utilizzati dalle prime versioni di Visual Studio come il 2010. Apparentemente VBA in Excel ha le sue stranezze uniche con la sintassi.Nel tuo caso, non vuole parentesi attorno alle opzioni per SetJoinMatchOptions.Un'alternativa consiste nell'usare Call davanti a esso.Ecco un esempio funzionante dal mio Excel 2013
'Il secondo esempio è un join che utilizza le colonne corrispondenti di due like
'datatables.
Dim Doc4 As JMP.Document
Dim Doc5 As JMP.Document
Dim NewDT2 As JMP.DataTable
Dim DT4 As JMP.DataTable
Dim DT5 As JMP.DataTable
Impostare MyJMP = CreateObject("JMP.Application")
MyJMP.Visible = Vero
Set Doc4 = MyJMP.OpenDocument("C:\Program Files\SAS\JMP\13\Samples\Data\Ingots.jmp")
Set Doc5 = MyJMP.OpenDocument("C:\Program Files\SAS\JMP\13\Samples\Data\Ingots2.jmp")
Impostare DT4 = Doc4.GetDataTable
Impostare DT5 = Doc5.GetDataTable
DT4.AddToJoinMatchList ("Calore"))
DT4.AddToJoinMatchList ("Ammollo"))
' Imposta le opzioni su Elimina multipli e Non includere non corrispondenze
DT4.SetJoinMatchOptions True, False
DT5.AddToJoinMatchList ("Calore"))
DT5.AddToJoinMatchList ("Ammollo"))
DT5.SetJoinMatchOptions True, False
Imposta NewDT2 = DT4.Join(DT5, JMP.dtJoinConstants.dtJoinMatching, "Join Table")
Brian
Ri: Come eseguire lo script jsl in excel VBA?Ciao, Brian
Forse non l'ho descritto chiaramente.
Quando provo a utilizzare l'esempio nella tabella dati .NET per unire le tabelle, ho scoperto che l'esempio non può funzionare correttamente.
Per esempio:
Quando apro una tabella di dati, non posso utilizzare solo lo script seguente:
Dim Doc4 As JMP.Document
Dim DT4 As JMP.DataTable
Doc4 = MyJMP.OpenDocument(tempDir & "cbData.csv")
DT4 = Doc4.GetDataTable
Invece, ho bisogno di aggiungere Set all'accattonaggio degli script come di seguito:
Impostato Doc4 = MyJMP.OpenDocument(tempDir & "cbData")
Impostato DT4 = Doc4.GetDataTable
Successivamente, entrambe le tabelle dati possono essere importate correttamente.
mentre quando vado a impostare le opzioni di corrispondenza del join, quando utilizzo lo script seguente:
DT4.SetJoinMatchOptions(Vero, Falso)
C'è sempre un errore, sembra che debba anche inviarlo a una variabile. Ma non sono del tutto sicuro di quale sia il tipo del valore restituito di " DT4.SetJoinMatchOptions(Vero, Falso) ". Forse cambia lo script come di seguito:
Dim str come xxxxxx
imposta str= DT4.SetJoinMatchOptions(Vero, Falso)
Non sono sicuro che la mia ipotesi sia giusta o meno, semplicemente non so come può essere impostato questo JoinMatchOptions.

Ri: Come eseguire lo script jsl in excel VBA?Passerei False e True piuttosto che 0 e 1, come fa l'esempio.Tuttavia, è più probabile che ci sia un problema con l'importazione dei tuoi dati per DT4. È difficile per me dire se quella tabella è stata importata correttamente.
Brian Corcoran
Sviluppo JMP
Ri: Come eseguire lo script jsl in excel VBA?Ciao, cervello
Grazie per le tue informazioni.
Questo è utile per me. mentre soffro di un altro problema quando faccio riferimento alla tabella dati .NET. Ci sono alcuni esempi in Data Table .NET. E seguo l'esempio per finire la mia sceneggiatura.
Di seguito è riportato l'esempio nella tabella DATI. NETTO
Mentre provo a usare un modo simile, ma sembra che quando imposto JoinMatchOptions, c'è sempre un errore. sembra che ho bisogno di impostare una variabile per questo script.
mentre non riesco a trovare alcuna informazione di aiuto per questo JoinMatchOptions. Non sono sicuro se manchi qualche impostazione per abilitare l'automazione JMP, includo già tutti gli elementi relativi a JMP nel riferimento.


Ri: Come eseguire lo script jsl in excel VBA?CIAO,
Non è possibile combinare riferimenti a oggetti tra JSL e Automation. Se devi fare riferimento a un oggetto come una tabella di dati, devi farlo tutto in Automation o tutto in JSL.È disponibile un metodo Join di automazione per gli oggetti Datatable.Esiste anche un metodo "AddToJoinList" per aggiungere le colonne a cui desideri unirti.La guida di riferimento sull'automazione può aiutare in questo, così come il programma di esempio di automazione Datatable fornito con JMP.Per JMP 12, il programma di esempio è disponibile in C:\Program Files\SAS\JMP\12\Samples\Automation\Visual Basic Samples\Data Table .NET. La guida di riferimento di Automation, "Automation Reference.pdf" è disponibile in C:\Program Files\SAS\JMP\12\Documentation.
Spero che aiuti.
Brian Corcoran
Sviluppo JMP