wps文档中批量处理表格

有时候我们需要对文档表格进行规范的格式处理,一个两个的时候情况还好,但是有成百上千个的时候怎么办呢~当然是—— (交给实习生啦)
是的我就是那个倒霉实习生,于是,给大家分享一下解决方法,利用wps宏工具一键操作。期间参考了其他友友们的帖子,十分感谢!


表格对齐

/**
 * 表格对齐
 */
function Table_align()
{
    let count = Application.ActiveDocument.Tables.Count;
    for(let i = 1 ; i <= count ; i++){
        //按窗口调整表格
        ActiveDocument.Tables.Item(i).AutoFitBehavior(wdAutoFitWindow);
        ActiveDocument.Tables.Item(i).Select();
        //单元格文本垂直居中对齐
        (obj=>{                    
            obj.Cells.VerticalAlignment = wdCellAlignVerticalCenter;
            obj.ParagraphFormat.Alignment = wdAlignParagraphCenter;
        })(Selection);
    }
    Debug.Print("表格对齐完成");
}

字体设置

/**
 * 字体设置
 */
function Table_font()	//改变字体颜色/样式/大小/高亮
{
	let count = Application.ActiveDocument.Tables.Count;
	for(let i = 1 ; i <= count ; i++){
		ActiveDocument.Tables.Item(i).Select();
		//表格底纹
		Selection.Cells.Shading.Texture = wdTextureNone;
		//高亮显示
		Selection.Range.HighlightColorIndex = wdNoHighlight;
		//边框
		(obj=>{
			obj.EnableFirstPageInSection = true;
			obj.EnableOtherPagesInSection = true;
			obj.ApplyPageBordersToAllSections();
		})(ActiveDocument.Sections.Item(1).Borders);
		//字体格式
		ActiveDocument.Tables.Item(i).Select();
		(obj=>{
		
			obj.FontStyle = "宋体";
			obj.FontStyle = "Times New Roma";
			obj.Size = 10.5;//即小五
			obj.Color = RGB(0,0,0);
			obj.Underline = wdUnderlineNone;
			obj.EmphasisMark = wdEmphasisMarkNone;
			obj.Hidden = 0;
			obj.Shadow = 0;
			obj.Outline = 0;
			obj.Emboss = 0;
			obj.Engrave = 0;
			obj.Scaling = 100;
		})(Selection.Font);
	}
	Debug.Print("字体设置完成");
}

首行格式化

/*首行格式化*/
function Table_row1()
{
	Console.clear();
	let count = Application.ActiveDocument.Tables.Count;
	for(let i = 1 ; i <= count ; i++){
		let table = ActiveDocument.Tables.Item(i);
		//判断是否单元格跨行
		let rowCount = table.Rows.Count;
		let rowFirst = table.Rows.First;
		try{
			let rowContent = table.Rows.Item(1);
			//首行背景颜色  wdColorGray30 
			rowFirst.Cells.Shading.BackgroundPatternColor =true;
			// 重复标题
			rowFirst.HeadingFormat = true;	
			//字体加粗
			rowFirst.Select();
			(obj=>{					
				obj.Bold = -1;
				obj.BoldBi = -1;
			})(Selection.Font);
		}catch(error){
			//如果遇到跨行情况,表格高亮显示,手动判断
			ActiveDocument.Tables.Item(i).Select();
			Selection.Range.HighlightColorIndex = 7;
			Debug.Print("表",i,"异常");
		}
	}
	Debug.Print("首行格式化完成");

注意: 有几个问题没有解决,欢迎大佬们讨论并给点建议

  • wps为什么不能用vba语言,交给ai生成的代码都运行不了
  • wps有vba模式,需要切换VB环境(还没尝试)

  • 首行格式化的时候会遇到单元格合并的情况,会报错,我是让高亮显示人工解决,有什么方法能够判断吗
  • wps的excel操作中我想对表格筛选后,选择筛选后的内容某一行(例如:筛选1班后选择第4的同学,筛选2班也要此时第4行的同学)怎么样能够固定选中当前页面的固定行
  • 每次定位单元格的行row,用Row(row+x)

  • wps宏编辑器调试总是没有错误提示和修改,感觉不太好用,有没有好用的呀
  • 快捷键F7(调试),F11(逐语句调试)

这个目的是让大家节省一些机械操作的重复时间,省下来有更多的休息和空闲时间,可以用来看看书摸摸鱼提升一下自己,不许用来内卷,坏!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值