JMP - Excel VBA 自动化您好,我正在使用 JMP 自动化使用“SelectRowsWhere”函数根据所选数据获取特定行号,但我无法获取行号值是否还有其他方法可以获取行号。请参阅下面我的代码。
子 getrownum()
将 MyJMP 调暗为 JMP.Application
将 JMPDoc 变暗为 JMP.Document
将 DT 变暗为 JMP.DataTable
设置 MyJMP = CreateObject("JMP.Application")
Set JMPDoc = MyJMP.OpenDocument("D:\JMP 主数据表\TestData.jmp")
MyJMP.Visible = True
设置 DT = JMPDoc.GetDataTable
设置 col1 = JMPDoc.GetDataTable.GetColumn("日期")
'DT.SelectRows 102056, 102057
'获取行号 102065 ??
DT.SelectRowsWhere“日期”,rowSelectEquals,rowSelectClearPrevious,“3565986300”
noofrowselected = DT.GetNumberOfRowsByRowState(rowStateSelected)
nn = DT.EnumRowStatesBegin(rowStateSelected)
n1selectedrow = DT.EnumRowStatesGetNextRow()
n2selectedrow = DT.EnumRowStatesGetRowByIndex(1)
getronumff = n1选定行
结束子
- 巴拉
回复:JMP - Excel VBA 自动化嗨布莱恩·科克伦,
感谢您的回复,是的,我正在使用“数据表.NET”作为示例。 以前的问题是我无法使用“SelectRowsWhere”获取行索引(行号)值,这可能是由于值类型所致。 现在我将代码更改为以下,它解决了目的。
' **DT.SelectRowsWhere“日期”,rowSelectEquals,rowSelectClearPrevious,“3565986300”**
DT.SelectRowsWhere“日期”,rowSelectEquals,rowSelectClearPrevious,“2016 年 12 月 31 日上午 12:00:00”
noofrowselected = DT.GetNumberOfRowsByRowState(rowStateSelected)
nn = DT.EnumRowStatesBegin(rowStateSelected)
n1selectedrow = DT.EnumRowStatesGetNextRow()
n2selectedrow = DT.EnumRowStatesGetRowByIndex(1)
getronumff = n1选定行
回复:JMP - Excel VBA 自动化我还应该提到,如果您想要单独的列值,那么您应该从数据表对象中获取一个列对象,然后只需对其调用 GetCellVal 即可。
例如:
Col = DT.GetColumn("年龄")
val = Col.GetCellVal(索引)
回复:JMP - Excel VBA 自动化嗨巴拉,
我会查看 JMP 附带的“Data Table .NET”示例程序。 对于 JMP 13,该路径位于 C:\program files\sas\jmp\13\Samples\Automation\Visual Basic Samples 下。 有几种方法可以做到这一点。 您所看到的其中之一是枚举。 该示例包含一个名为 Enum Selected 的按钮,可以执行您想要的操作。 相关代码是:
NSelected = DT.EnumRowStatesBegin(JMP.rowStateConstants.rowStateSelected)
对于 i = 1 至 NSelected
MsgBox(DT.EnumRowStatesGetNextRow, MsgBoxStyle.OkOnly, "下一个选定行是")
接下来我
您还可以查看“获取选定矢量”示例。 这使用调用 GetRowStateVector 按索引返回所有选定行的数组。
另一个示例“获取选定数据”使用 GetRowStateVectorData 返回基础数据值而不是索引。
我希望这有帮助。
布赖恩·科科伦
JMP开发