<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola, estoy viendo un programa de muestra incluido con JMP 11:
C:\Archivos de programa\SAS\JMP\11\Samples\Automation\Visual Basic Samples\Data Table .NET\datatab.vb
Como no tengo Visual Studio (solo Excel), abrí "datatab.vb" con el Bloc de notas e intenté traducir el procedimiento "Subset_Click" de Visual Basic (VB) a Visual Basic para aplicaciones (VBA). Consulte el ejemplo de código a continuación.
Tengo algunas preguntas:
- ¿Por qué "doc = app.OpenDocument(fname)" provoca un error en tiempo de ejecución "Variable de objeto no establecida"?
- ¿Cómo funcionan los métodos de subconjunto de tabla de datos? Puedo verlos en el Examinador de objetos de Excel VBA, pero no hay muchos detalles.
- ¿Cómo se usa el identificador de tabla de datos?
Gracias por tu ayuda.
'------------------------------------------------- -------
'Subconjunto bigclass por Peso y Altura
'Guarde el nuevo identificador de la tabla de datos en NewDT, luego guarde la tabla en el disco como subconjunto.jmp
'------------------------------------------------- -------
Sub subconjunto()
Dim aplicación como JMP.Aplicación
Dim doc como documento JMP
Dim dt como JMP.DataTable
Dim newDT como JMP.DataTable
Dim dtDoc como JMP.Documento
Dim dir como cadena
Dim fname como cadena
'Iniciar JMP
Establecer aplicación = CreateObject("JMP.Aplicación")
aplicación.Visible = Verdadero
'Obtener tabla de datos
dir = "C:\Archivos de programa\SAS\JMP\11\Samples\Data\"
fname = dir & "Clase grande.jmp"
doc = app.OpenDocument(fname)
dt = doc.GetDataTable
'Subconjunto de datos
dt.Activar
dt.SubsetSetRandomSelection(2, Falso)
dt.SubsetStratifyAddColumn ("edad")
dt.AddToSubList ("Nombre")
dt.AddToSubList ("Peso")
dt.AddToSubList ("Altura")
nuevoDT = dt.Subconjunto
dtDoc = newDT.Documento
dtDoc.Guardar como ("C:\JMP\subconjunto.jmp")
Finalizar sub
'------------------------------------------------- -------
¡Guau, hay muchas cosas buenas en el directorio de instalación de JMP! Las descripciones de métodos en el PDF de referencia de automatización son ciertamente útiles.
Con respecto a mis preguntas originales:
- Se necesitaba la palabra clave "Set" para asignar una referencia de objeto a la variable.
- Tu comentario e imagen me ayudaron a entender el código del subconjunto.
¡Gracias de nuevo!
Hola JB,
Hay una referencia de automatización completa instalada en el directorio de documentación donde está instalado JMP 11.Si obtiene una referencia incorrecta, eso significa que JMP no pudo iniciarse (el objeto de la aplicación está vacío) o no pudo encontrar la tabla de datos de Big Class y esa referencia está vacía.Tenga en cuenta que si utiliza JMPPro, el directorio será diferente a JMPPRO\11, no a JMP\11.Lo mismo ocurre con otros productos JMP.
Esta muestra está haciendo un subconjunto, con un tamaño de muestra aleatoria de 2. La estratificación está configurada y la columna de edad se usa para la muestra estratificada.Solo se generarán las columnas seleccionadas.En este caso, nombre, altura y peso son las columnas seleccionadas.Adjunto una imagen de cómo se vería si hicieras esto de forma interactiva.
Espero que esto ayude,
Brian Corcorán
Desarrollo JMP