一个xlsx文件里面有四张表,汇总表按部门名称统计“附表1”,“附表2”,“附表3”三张表中的数据,现在在汇总表中选中一个部门的名称后运行宏,四张表都只保留选中部门的数据,并且以部门名称保存该文件。
这种应用场景也是挺广的,汇总了部门的数据,给某个部门反馈的时候运行宏即可导出,
function splite_xls()
{
//当前选中单元格的值
sl=Selection.Value2;
if(MsgBox("只保留 " + sl,1)==2)
return
var i;
//清理汇总表
for(i=42;i>3;i--)
{
if(Sheets.Item("汇总").Range("A"+i).Value2!=sl)
Sheets.Item("汇总").Range("A"+i).EntireRow.Delete(xlShiftUp);
}
//清理附表1
for(i=1500;i>4;i--)
{
if(Sheets.Item("附表1").Range("H"+i).Value2!=sl)
Sheets.Item("附表1").Range("H"+i).EntireRow.Delete(xlShiftUp);
}
//清理附表2
for(i=200;i>4;i--)
{
if(Sheets.Item("附表2").Range("F"+i).Value2!=sl)
Sheets.Item("附表2").Range("F"+i).EntireRow.Delete(xlShiftUp);
}
//清理附表3
for(i=1300;i>4;i--)
{
if(Sheets.Item("附表3").Range("I"+i).Value2!=sl)
Sheets.Item("附表3").Range("I"+i).EntireRow.Delete(xlShiftUp);
}
ActiveWorkbook.SaveAs("/data/" + sl + ".xlsx", undefined, undefined, undefined, undefined, undefined, xlNoChange, 1, -1, undefined, undefined);
MsgBox("保存成功");
}