WPS--表格-JS宏-JSA--打开智能筛选后,写值异常

如下有一表格

智能筛选打开,将带有底纹的单元格隐藏(通过智能筛选的方式隐藏,正常的隐藏不受影响)

执行如下宏指令后

function test(){

let range1=Worksheets("Sheet1").UsedRange.Value2;

for(i=0;i<range1.length;i++){

for(j=0;j<range1[0].length;j++){

range1[i][j]=100*i+j;

}

}

Worksheets("Sheet1").UsedRange.Value2=range1;

}

此仍为筛选状态

解除筛选后,可以看出写入区域被分为三个子区域,分别对这三个区域写入了数组中的内容

我们在非筛选状态下,再次执行对应代码

可以看出,写入值正常

对区域单元格中写入值前可以使用 解除筛选状态

Worksheets("Sheet1").AutoFilterMode = false;

猜测:

打开录制宏,手动执行筛选操作

function Macro1()

{

Selection.AutoFilter(undefined, undefined, xlAnd, undefined, undefined);

Rows.Item("1:1").Select();

Selection.AutoFilter(undefined, undefined, xlAnd, undefined, undefined);

ActiveWorkbook.Names.Add("Sheet1!_FilterDatabase", "=Sheet1!$A$1:$J$1", false, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined);

Range("A1:J10").AutoFilter(6, RGB(4, 0, 2), xlFilterCellColor, undefined, undefined);

ActiveWorkbook.Names.Add("Sheet1!_FilterDatabase", "=Sheet1!$A$1:$J$10", false, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined);

Range("F3").Select();

Range("A1:J10").AutoFilter(6, RGB(4, 0, 2), xlFilterCellColor, undefined, undefined);

ActiveWorkbook.Names.Add("Sheet1!_FilterDatabase", "=Sheet1!$A$1:$J$10", false, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined);

Range("F2").Select();

Range("A1:J10").AutoFilter(6, RGB(4, 0, 2), xlFilterCellColor, undefined, undefined);

ActiveWorkbook.Names.Add("Sheet1!_FilterDatabase", "=Sheet1!$A$1:$J$10", false, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined);

Range("M18").Select();

Selection.AutoFilter(undefined, undefined, xlAnd, undefined, undefined);

Range("M5").Select();

}

可以看出,每次在进行筛选操作,都会对当前工作表添加一个区域,创建别名,索引工作表的单元格时,会受到上述机制影响,从而造成预期外的值写入。

广东省
浏览 4990
收藏
点赞
分享
+1
1
+1
全部评论 1
 
繁忙中……
怎么没有人来解决问题呢?我也是录制的宏,筛选表格某列没有涂色的行。录制的颜色是RGB(4,0,2)【很好奇为啥不是0,0,0】。我将该宏运行去筛选另一列,筛选不出来,全部隐藏了!
· 重庆
回复