批量清除单元格前后字符串并转换为数字格式

@[TOC]剔除单元格的前后字符串
有些csv文档,单元格中隐藏了前后字符串,例如"2021-09-10 13:24:17 "这种,利用wps js宏,结合正则表达式,可以剔除。

1.更改前的:在这里插入图片描述

2.更改后的:
在这里插入图片描述
可以看出A5:A10单元格的数据改变了。
3.代码如下:

function txta(){
	String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');   
  };
	
	var tepStrA="2021-09-10 13:24:17	";
	Debug.Print(tepStrA);
	var tepStrB = tepStrA.trim();
	Debug.Print(tepStrB);
	
	
	/**以上实例,利用了正则;原来A5单元格字符串是"2021-09-10 13:24:17	",
		经过替换后变成了2021/9/10 13:24:17;删除了前后空格,直接变更为数字格式
		利用这个,可以批量实现替换
  */
  for(var tepA = 5;tepA<= ActiveWorkbook.Sheets.Item(1).UsedRange.Cells.Rows.Count; tepA++ ){
  	tepStrA = ActiveWorkbook.Sheets.Item(1).Cells.Item(tepA,1).Value2;
  	var tepStrB = tepStrA.trim();
  	ActiveWorkbook.Sheets.Item(1).Cells.Item(tepA,1).Value2 = tepStrB;
  }

4.这里增加了String.prototype.trim()一个正则函数功能;利用replace(/1+|[\s\uFEFF\xA0]+$/g, ‘’),把前后空格剔除,其中\s:空格;\uFEFF:字节次序标记字符;\xA0:禁止自动换行空白符。

5.tepA,tepStrA,tepStrB是定义变量;6.ActiveWorkbook.Sheets.Item(1).UsedRange.Cells.Rows.Count,表示当前工作表的总行数,这里返回第10行
7.将需要更换的字符串先存放在tepStrA,经过正则替换,再把替换后放在tepStrB;然后把tepStrB放回单元格中;当然这一句也可以改为:
改前:

var tepStrB = tepStrA.trim();
  	ActiveWorkbook.Sheets.Item(1).Cells.Item(tepA,1).Value2 = tepStrB;

改后:

ActiveWorkbook.Sheets.Item(1).Cells.Item(tepA,1).Value2 = tepStrA.trim();

仅供参考


  1. \s\uFEFF\xA0 ↩︎

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值