我有一个列对话框,它将列的名称存储到列表“selectedDataPinColumn”中。 我正在使用循环来找出该名称对应的列号,并根据找到的数字引用该列,这是可行的。 我正在尝试添加到表中先前选择的内容,但我似乎无法让“选择位置”函数处理硬编码列名称以外的任何内容,这对我不起作用,因为这需要动态。 我已经包含了下面的主循环 JMP 16。
For ( i = 1, i <= N Cols (originalTable), i++,
tempColName = Char(Column ( originalTable, i) << Get Name ());
For ( j = 1, j <= N Items (selectedDataPinColumn), j++,
If ( tempColName == Char(selectedDataPinColumn[j]),
originalTable << Select Where ( Column( originalTable, i ) == "GND" | Column (originalTable, i) == "GND & MeasI" | Column (originalTable, i) == "HIZ" | Column (originalTable, i) == "HiZ"*/, Current Selection( "Extend" ));
originalTable << Invert Row Selection();
selectedRows = originalTable << Get Selected Rows ();
selectVsandAs << Close Window();
//originalTable << Delete Rows (selectedRows);
);
);
);将 Column() 更改为 AsColumn() 或 Column()[] 或 Column()[Row()] 可能就足够了。 另外,根据您正在做什么,可能有很多方法可以简化您的代码(使用 Contains 而不是 Or()、For Each 而不是 For...)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
i = 1;
dt << Select Where(Contains({"JOE", "F"}, AsColumn(dt, i)), Current Selection("Extend"));
wait(1); // for demo purposes
i = 3;
dt << Select Where(Contains({"JOE", "F"}, Column(dt, i)[]), Current Selection("Extend"));