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++){

arri-1=i;

//console.log(arr.length);

}

//4、执行删除重复值

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

}

相关推荐
子轩学长说10 小时前
Workbuddy智能办公时代,告别office、告别WPS~
wps
JKooll11 小时前
WPS 表格 DISPIMG 函数实战:用 JavaScript 将图片真正嵌入单元格
javascript·wps
letian88082 天前
WPS2026专业增强版!一键安装,自动授权,内置VBA组件!
wps
Jo乔戈里3 天前
Windows系统弹窗自动点否?问题可能在WPS
wps
hPw0eKIqD4 天前
使用二次封装的Excel COM 组件操作Excel\WPS ET中的区域、行和列
excel·wps
金豆呀4 天前
WPS批量提取Word文档内容生成固定格式Excel表格
word·excel·wps
红莲凪是6 天前
使用二次封装的Excel COM 组件操作Excel\WPS ET IExcelRange 高级应用
python·excel·wps
xiaopai9457 天前
WPS做工程项目台账哪些能管、哪些管不住?
wps·工程项目·建米软件
Sunflower0210 天前
如何解决word/WPS word 中表格跳到下一页(上一页有大篇幅空白)
word·wps
码上得天下10 天前
如何在默认打开方式设置中去掉已失效\已删除的应用选项?(比如WPS)
wps