JMP - Automatisation Excel VBABonjour, j'utilise l'automatisation JMP pour obtenir un numéro de ligne particulier en fonction des données sélectionnées à l'aide de la fonction "SelectRowsWhere", mais je n'ai pas pu obtenir la valeur du numéro de ligne. Existe-t-il un autre moyen d'obtenir le numéro de ligne. voir ci-dessous mon code.
Sous getrownum()
Estomper MyJMP en tant que JMP.Application
Estomper JMPDoc en tant que JMP.Document
Dim DT As JMP.DataTable
Set MyJMP = CreateObject("JMP.Application")
Set JMPDoc = MyJMP.OpenDocument("D:\JMP Main Data Table\TestData.jmp")
MonJMP.Visible = Vrai
Définir DT = JMPDoc.GetDataTable
Set col1 = JMPDoc.GetDataTable.GetColumn("Date")
'DT.SelectRows 102056, 102057
'pour obtenir le numéro de ligne 102065 ??
DT.SelectRowsWhere "Date", rowSelectEquals, rowSelectClearPrevious, "3565986300"
noofrowselected = DT.GetNumberOfRowsByRowState(rowStateSelected)
nn = DT.EnumRowStatesBegin(rowStateSelected)
n1selectedrow = DT.EnumRowStatesGetNextRow()
n2selectedrow = DT.EnumRowStatesGetRowByIndex(1)
getronumff = n1selectedrow
Sous-titre de fin
- Bala
Re : JMP - Automatisation Excel VBASalut Brian Corcoran,
Merci pour la réponse, oui j'utilise le "Data Table .NET" comme exemple. Auparavant, le problème était que je ne pouvais pas obtenir la valeur de l'index de ligne (numéro de ligne) à l'aide de "SelectRowsWhere", cela pouvait être dû au type de valeur. Maintenant, j'ai changé le code en suivant et cela résout le problème.
' **DT.SelectRowsWhere "Date", rowSelectEquals, rowSelectClearPrevious, "3565986300"**
DT.SelectRowsWhere "Date", rowSelectEquals, rowSelectClearPrevious, "12-31-2016 12:00:00 AM"
noofrowselected = DT.GetNumberOfRowsByRowState(rowStateSelected)
nn = DT.EnumRowStatesBegin(rowStateSelected)
n1selectedrow = DT.EnumRowStatesGetNextRow()
n2selectedrow = DT.EnumRowStatesGetRowByIndex(1)
getronumff = n1selectedrow
Re : JMP - Automatisation Excel VBAJe dois également mentionner que si vous voulez des valeurs de colonne individuelles, vous devez obtenir un objet de colonne à partir de l'objet de table de données, puis appeler GetCellVal à ce sujet.
Par exemple:
Col = DT.GetColumn("âge")
val = Col.GetCellVal(index)
Re : JMP - Automatisation Excel VBASalut Bala,
Je regarderais l'exemple de programme "Data Table .NET" fourni avec JMP. Pour JMP 13, ce serait sous C:\program files\sas\jmp\13\Samples\Automation\Visual Basic Samples. Il existe plusieurs façons de procéder. L'un, auquel vous veniez, est l'Enum. L'exemple contient un bouton appelé Enum Selected qui fait ce que vous voulez. Le code correspondant est :
NSelected = DT.EnumRowStatesBegin(JMP.rowStateConstants.rowStateSelected)
Pour i = 1 à NSélectionné
MsgBox(DT.EnumRowStatesGetNextRow, MsgBoxStyle.OkOnly, "La prochaine ligne sélectionnée est")
Ensuite je
Vous pouvez également consulter l'exemple "Get Selected Vector". Cela utilise l'appel GetRowStateVector pour renvoyer un tableau de toutes les lignes sélectionnées par index.
Le "Get Selected Data", un autre exemple, utilise GetRowStateVectorData pour renvoyer les valeurs de données sous-jacentes plutôt que les indices.
J'espère que cela aide.
Brian Corcoran
Développement JMP