¿Cómo ejecutar el script jsl en excel VBA?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Intente ejecutar el script jsl en el entorno Excel VBA. el propósito del script es abrir dos tablas de datos csv y unirlas.
el guión le gusta a continuación:
Carga secundaria de datos ()
Dim myjmp como JMP.Aplicación
Dim jmp_doc como JMP.Documento
Dim jmp_BL como JMP.DataTable
Dim jmp_dt como JMP.DataTable
Dim jmp_dtFinal como JMP.DataTable
Dim jmpstr como cadena
Establecer myjmp = CreateObject("JMP.Aplicación")
myjmp.Visible = Verdadero
Establezca jmp_doc = myjmp.OpenDocument("C:\Users\xxxxx\Desktop\BL.csv")
Establecer jmp_BL = jmp_doc.GetDataTable
Establecer jmp_doc = myjmp.OpenDocument("C:\Users\xxxxx\Desktop\cbData.csv")
Establecer jmp_dt = jmp_doc.GetDataTable
jmpstr = "jmp_dtFinal= jmp_dt << Unirse (Con (jmp_BL), Fusionar columnas con el mismo nombre, Haciendo coincidir columnas (: col1 =: col2,: col2 =: col2), Soltar múltiplos (0, 1), Nombre ("" Incluir no coincidencias"" )(1, 1),);"
myjmp.RunCommand jmpstr
Las dos tablas de datos se pueden abrir correctamente, pero solo la función de unión, no funciona. ¿Alguien puede ayudar con el guión?
¡Gracias!
Re: ¿Cómo ejecutar el script jsl en Excel VBA?Sí, se agregará en JMP 13. Gracias,
Brian
Re: ¿Cómo ejecutar el script jsl en Excel VBA?, Con la esperanza de que se agregue en la próxima versión de jmp.
¡Gracias!
Re: ¿Cómo ejecutar el script jsl en Excel VBA?Lo siento, pero esa opción aún no se ha incluido en Automatización.Puede eliminar las columnas de la tabla de resultados mediante la automatización.Además, si no le importa fusionar la tabla en una de las tablas existentes, es posible que pueda usar UpdateTable en su lugar.
Brian
Re: ¿Cómo ejecutar el script jsl en Excel VBA?Hola Brian
Muchas gracias por tu información.
Tengo una pregunta más sobre esta combinación de datos. Cuando configuro las opciones de unión de coincidencias como se muestra a continuación para descartar múltiplos y incluir las no coincidencias tanto en la tabla principal como en la secundaria.
DT4.SetJoinMatchOptions Falso, Verdadero
DT5.SetJoinMatchOptions Verdadero, Verdadero
Pero el resultado es el siguiente, parece que estas dos tablas se unieron, pero no se fusionaron con la misma columna de nombre.

Normalmente, en la configuración de unión de la tabla de datos jmp, hay una opción "Fusionar la columna del mismo nombre", si la marca, la tabla fusionará las columnas con el mismo nombre. Pero en esta función de unión de VBA:
Establecer NewDT2 = DT4.Join(DT5, JMP.dtJoinConstants.dtJoinMatching, "Unirse a la tabla")
No existe tal configuración.
Entonces, ¿sabe cómo lograr la función de "columna del mismo nombre nerge"?
¡gracias!

Re: ¿Cómo ejecutar el script jsl en Excel VBA?Hola,
El uso de "Set" para objetos puede ser opcional en Visual Studio cuando se usa VB, por lo que las muestras no siempre lo usan.También fueron escritos para su uso en versiones anteriores de Visual Studio como 2010. Aparentemente, VBA en Excel tiene sus propias peculiaridades únicas con la sintaxis.En su caso, no quiere paréntesis alrededor de las opciones para SetJoinMatchOptions.Una alternativa es usar Call delante de él.Aquí hay una muestra de trabajo de mi Excel 2013
'El segundo ejemplo es una combinación que usa columnas coincidentes de dos
'tablas de datos.
Dim Doc4 como JMP.Documento
Dim Doc5 como JMP.Documento
Dim NewDT2 como JMP.DataTable
Dim DT4 como JMP.DataTable
Dim DT5 como JMP.DataTable
Establecer MyJMP = CreateObject("JMP.Aplicación")
MiJMP.Visible = Verdadero
Establezca Doc4 = MyJMP.OpenDocument("C:\Archivos de programa\SAS\JMP\13\Samples\Data\Ingots.jmp")
Establezca Doc5 = MyJMP.OpenDocument("C:\Archivos de programa\SAS\JMP\13\Samples\Data\Ingots2.jmp")
Establecer DT4 = Doc4.GetDataTable
Establecer DT5 = Doc5.GetDataTable
DT4.AddToJoinMatchList (("Calor"))
DT4.AddToJoinMatchList (("Remojo"))
' Establece opciones para descartar múltiplos y no incluir no coincidencias
DT4.SetJoinMatchOptions Verdadero, Falso
DT5.AddToJoinMatchList (("Calor"))
DT5.AddToJoinMatchList (("Remojar"))
DT5.SetJoinMatchOptions Verdadero, Falso
Establecer NewDT2 = DT4.Join(DT5, JMP.dtJoinConstants.dtJoinMatching, "Unirse a la tabla")
Brian
Re: ¿Cómo ejecutar el script jsl en Excel VBA?Hola Brian
Quizás no lo describí claramente.
Cuando trato de usar el ejemplo en Data Table .NET para unir tablas, encontré que el ejemplo no puede funcionar correctamente.
Por ejemplo:
Cuando abro una tabla de datos, no solo puedo usar el siguiente script:
Dim Doc4 como JMP.Documento
Dim DT4 como JMP.DataTable
Doc4 = MiJMP.OpenDocument(tempDir & "cbData.csv")
DT4 = Doc4.GetDataTable
En cambio, necesito agregar Establecer al inicio de los scripts como se muestra a continuación:
Colocar Doc4 = MiJMP.OpenDocument(tempDir & "cbData")
Colocar DT4 = Doc4.GetDataTable
Después de eso, ambas tablas de datos pueden importarse correctamente.
mientras que cuando voy a configurar las opciones de coincidencia de unión, cuando uso el siguiente script:
DT4.SetJoinMatchOptions (Verdadero, Falso)
Siempre hay un error, parece que también necesito enviar esto a una variable. Pero no estoy muy seguro de cuál es el tipo de valor de retorno de " DT4.SetJoinMatchOptions (Verdadero, Falso) ". Tal vez cambie el script de la siguiente manera:
Dim str como xxxxxx
establecer cadena = DT4.SetJoinMatchOptions (Verdadero, Falso)
No estoy seguro de si mi suposición es correcta o no, simplemente no sé cómo se puede configurar JoinMatchOptions.

Re: ¿Cómo ejecutar el script jsl en Excel VBA?Pasaría Falso y Verdadero en lugar de 0 y 1, como lo hace el ejemplo.Sin embargo, es más probable que haya un problema con la importación de sus datos para DT4. Es difícil para mí saber si esa tabla se ha importado correctamente.
Brian Corcorán
Desarrollo JMP
Re: ¿Cómo ejecutar el script jsl en Excel VBA?hola, cerebro
Gracias por su información.
Esto es útil para mí. mientras sufro otro problema cuando me refiero a la tabla de datos .NET. Hay algunos ejemplos en Data Table .NET. Y sigo el ejemplo para terminar mi guión.
A continuación se muestra el ejemplo en la tabla DATA. NETO
Si bien trato de usar la forma similar, pero parece que cuando configuro JoinMatchOptions, siempre hay un error. parece que necesito establecer una variable para este script.
mientras que no puedo encontrar ninguna información de ayuda para este JoinMatchOptions. No estoy seguro si pierdo alguna configuración para habilitar la automatización de JMP, ya incluí todos los elementos relacionados con JMP en la referencia.


Re: ¿Cómo ejecutar el script jsl en Excel VBA?Hola,
No puede mezclar referencias de objetos entre JSL y Automatización. Si necesita hacer referencia a un objeto como una tabla de datos, debe hacerlo todo en Automatización o todo en JSL.Hay un método Join de automatización disponible para los objetos Datatable.También hay un método "AddToJoinList" para agregar las columnas a las que desea unirse.La guía de referencia de automatización puede ayudar con esto, al igual que el programa de muestra de automatización Datatable que se envía con JMP.Para JMP 12, el programa de ejemplo está disponible en C:\Program Files\SAS\JMP\12\Samples\Automation\Visual Basic Samples\Data Table .NET. La guía de referencia de automatización, "Referencia de automatización.pdf" está disponible en C:\Program Files\SAS\JMP\12\Documentation.
Espero que eso ayude.
Brian Corcorán
Desarrollo JMP