4.8 FAQ-367 如何从工作表中删除每个第 n 行或列?

Last Update: 8/10/2018

Contents

删除每个第 n 行或列

通过删减列/行对话框

如需删减列,选择工作表:删减列。这将打开wreducecols X-Function。

比如,你可以进行如下设置去删减当前工作表的每第5列(删掉1列然后跳过4列,从第5列开始)。

FQA367 Reduce Columns-CN.png

或者,你可以在命令窗口直接运行以下程序去执行以上操作:

wreducecols skip:=4 start:=5;

如需删除行,选择工作表:删减行。这将打开wreducerows X-Function。

比如,按以下截图设置对话框,当前工作表的每个第4行将被删除(删除1行,跳过3行,从第4行开始)

FQA367 Reduce Rows-CN.png

或者,你可以在命令窗口直接运行以下程序去执行以上操作:

wreducerows nrows:=1 skip:=3 start:=4;

通过循环脚本

激活工作表,打开脚本窗口 (菜单项:窗口:脚本窗口),复制粘贴下面的脚本行到脚本窗口,然后选择所有列,按Enter键执行。

如需删除列:

// Delete every nth column, counting from the left
int ndel = 3; // change this number as needed;

int ncols = wks.ncols;
int nlast = ncols - mod(ncols, ndel);

// Start deleting from the right to the left
for(int ii = nlast; ii > 0; ii -= ndel)
{
   delete wcol(ii);
}

删除行:

// Delete every nth row, couting from the top
int ndel = 3; // change this number as needed;

int nrows = wks.nrows;
int nlast = nrows - mod(nrows, ndel);

// Start deleting from the bottom to the top
for(int ii = nlast; ii > 0; ii -= ndel)
{
  wks.DeleteRows(ii);
}

使用选择对话框删除每第n列

  1. 激活工作表,选择编辑:选择...菜单。
  2. 在打开的选择对话框,从模式下拉菜单选择选择N列并跳过M列,然后设置N, M开始列
  3. 点击测试-当条件为真的选取按钮去选择想要的列。点击隐藏退出对话框。
  4. 在工作表中,右击被选中的列,选择删除上下文菜单。

比如,按下图设置对话框,将在激活工作表选择每第5列。(选择1列,跳过4列,从第5列开始)

FQA367 Select-CN.png

点击测试-当条件为真的选取按钮,然后隐藏按钮。回到工作表,通过选择右键删除菜单去删除这些列。这样每第5列将被删除。

使用工作表查询对话框删除每个第 n 行

  1. 激活工作表,打开工作表查询对话框,通过选择工作表:工作表查询菜单项。
  2. 条件框内,输入mod(i,3)==0 (参考mod函数),这意味着选择每第三行。然后点击测试-当条件为真的选取按钮去高亮选择这些行.
    FQA367 Worksheet Query-CN.png
  3. 关闭这个对话框,使用右键删除菜单删除这些行。

Keywords:remove, reduce,移除,减少

Minimum Origin Version Required: 2016 SR0