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開發