JSL代碼清除選定的數據表內容我正在嘗試做一些我認為應該很容易完成的事情,但我找不到可以讓我完成的 JSL 指令。基本上,在選擇各種列和行後,我想刪除所選單元格的內容,而不是整個列或行。我可以手動執行此操作,但找不到執行此操作的 JSL 命令。任何建議,將不勝感激。
例如,
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Select Rows( [5, 7, 8, 10] );
Column ( "name" ) << Set Selected ( 1 );
Column ( "sex" ) << Set Selected ( 1 );
現在刪除所選單元格的內容。
謝謝。
回复:JSL代碼清除選定的數據表內容<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />操作系統標準之間存在差異。Windows 使用編輯->清除Mac 使用編輯->刪除。
因此,為了使腳本對任何一個都健壯,您需要使用:
If(Host is( Windows ),
Main Menu( "Clear" ), //Windows
Main Menu( "Delete" ) //Mac
);
-傑夫
回复:JSL代碼清除選定的數據表內容謝謝大家的建議,
很高興看到幾個選項。我想應該有一個典型的命令我可以按照MS的建議調用(注意:實際命令是主菜單( “清除” ) ;, 不是主菜單( “刪除” ))
回复:JSL代碼清除選定的數據表內容非常感謝! 字符數越少越好,尤其是在我打字的時候。 。 。
回复:JSL代碼清除選定的數據表內容伊恩的功能不錯! 為了進一步簡化它,您可以避免使用 Empty() 單獨處理不同的數據類型。 它適用於數字列和字符列。
For(c = 1, c <= N Items(selCols), c++, Column(dt, selCols[c])[selRows] = Empty());
回复:JSL代碼清除選定的數據表內容一個簡單但有潛在風險的方法是使用 MainMenu() 來調用刪除命令在編輯菜單。 這是有風險的,因為它會刪除活動窗口中選擇的任何內容。 因此,在復雜的腳本中,請確保跟踪命令運行時哪個窗口將位於頂部。
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Select Rows([5, 7, 8, 10]);
Column("name") << Set Selected(1);
Column("height") << Set Selected(1);
dt << Bring Window To Front;
Main Menu("Delete");
回复:JSL代碼清除選定的數據表內容像這樣的東西:
NamesDefaultToHere(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Set up a selection of cells
dt << Select Rows( [5, 7, 8, 10] );
Column (dt, "name" ) << Set Selected ( 1 );
Column (dt, "sex" ) << Set Selected ( 1 );
// Function to set currently selected cells to '.' or ""
clearSelectedCells =
Function({dt}, {Default Local},
selCols = dt << getSelectedColumns;
selRows = dt << getSelectedRows;
for(c=1, c<=NItems(selCols), c++,
dType = Column(dt, selCols[c]) << getDataType;
if (dType == "Numeric",
Column(dt, selCols[c])[selRows] = .
,
Column(dt, selCols[c])[selRows] = ""
);
);
);
// Use the function
clearSelectedCells(dt);