WPS宏获取表格选中区域实现多列重复值删除

第一版是单列删除,ActiveCell返回一个 Range 对象,该对象代表活动窗口的活动单元格,注意区分活动单元格和选定区域。活动单元格是当前选定区域内的单个单元格。选定区域可能包含多个单元格,但只有一个是活动单元格。

function Macro1()

{

//1、获取选中单元格列号

var b = ActiveCell.Cells.Column;

var a = ActiveCell.Cells.Row;

//console.log("选中区域首行:"+a);

//console.log("选中区域首列:"+b);

//2、选中所选单元格所属列

/*知识点:

Cells.Item(a,b),Item是Cells的属性,返回集合中的单个单元格对象

*/

//Sheets("Sheet1").Cells.Item(a,b).EntireColumn.Select();

Sheets("Sheet1").Range(Cells(a,b),Cells(a,b)).EntireColumn.Select();

//3、执行删除重复值

/*知识点:

RemoveDuplicates (Columns 、 Header) ,从值区域中删除重复的值,表示 Range 对象的变量

Variant 包含重复信息的列的索引数组

XlYesNoGuess 指定第一行是否包含标题信息。 xlNo 是默认值;

*/

//Sheets("Sheet1").Cells.Item(a,b).EntireColumn.RemoveDuplicates(1, xlYes);

Sheets("Sheet1").Range(Cells(a,b),Cells(a,b)).EntireColumn.RemoveDuplicates(1, xlYes);

}

第二版是既能单列删除也能多列删除,Selection对象代表窗口或窗格中的当前所选内容,‌每个文档窗格只能有一个Selection对象,‌并且在整个应用程序中只能有一个活动的Selection对象‌。这个Selection查了N多资料,真费劲。

function Macro1()

{

//1、获取当前选中区域

var e =Selection.Cells.Address();

var a = Range(e).Columns.Count;

//console.log("所选区域的列数:"+a);

//console.log("所选区域的地址:"+e);

//2、选中所选单元格所属列

Range(e).EntireColumn.Select();

//3、创建数组,将列数通过遍历添加到数组中

var arr = new Array();

for(var i = 1 ; i <= a ; i++){

arr[i-1]=i;

//console.log(arr.length);

}

//4、执行删除重复值

Range(e).EntireColumn.RemoveDuplicates(arr, xlYes);

}

相关推荐
dyxal1 天前
linux系统上 WPS Office新增字体
linux·运维·wps
罗政1 天前
WPS Excel快速进行同表内的单元格差异对比(高亮)
excel·wps
罗政2 天前
WPS 如何进行单元格数据脱敏(实用方法与坑位避让)
wps
罗政2 天前
WPS Excel如何快速交换列(调整列顺序),删除多个不连续的列
excel·wps
枯基Evan3 天前
PPTX 中加入输入框和按钮,文本框不为空点击按钮跳转
wps·jsa
黄色茶杯4 天前
解决WPS的word文件嵌入EXCEL无法双击打开
word·excel·wps
PPT百科8 天前
PPT插入的图片太大了,怎么缩小一点?
信息可视化·数据分析·powerpoint·wps·ppt模板
事橙19998 天前
wps安装mathtype报错:错误‘48’:文件未找到:MathPage.WLL||终于解决MathPage.wll文件找不到问题(亲测有效!)
wps
夏之繁花8 天前
WPS Office v18.22.0 国际版
wps
扬道财经8 天前
金山办公助力图像图形技术挑战赛,WPS 365自研文档解析算法、表格召回准确率行业领先
wps