WPS宏关于时间格式值的读取与比对

之前对表格单元格的读取及赋值用Range对象的Value2或Formula 属性,获取表格区域值的时候用Value() 方法获取,对于日期格式Value2或Formula 属性获取到的都是日期数字,还转换不过来,用Value() 方法读取单个单元格成功拿到日期,Value().toLocaleString();打印出的日期比源表格的时期超8小时,无法指定时区,最后用Value().toISOString();解决了。

function 景526() {
    
    //设置工作表对象
    var ws1 = ThisWorkbook.Worksheets('Sheet1');
    
    //获取Sheet1页的行数放进数组
    var arrow = new Array();
    var st5LastRow = ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row;
    
    for(var j = 0 ; j < st5LastRow ; j++){
         arrow[j]=j+1;
    }
    
    //在K列插入空白行
    ws1.Range(Cells(1,12),Cells(st5LastRow,12)).EntireColumn.Insert(xlShiftToRight, false);
    ws1.Cells(1,12).Value2 = "是否今日新增";
    
    //对于时间比较,这里只能用Value()去获取值,用toISOString()去格式化时间,剩下的都是不对的,我试了一天
    var arrow1 = new Array();
    for (let x = 0; x < arrow.length-1; x++) {
        //console.log("a"+arrow[x+1]);
        var a = ws1.Range("K"+arrow[x+1]).Value().toISOString();
        arrow1.push(a);
        }
    
    //比较时间
    for (let yy = 2; yy < arrow1.length+2; yy++) {
     var value = arrow1[yy-2];
     var value1 = value.split('T');
     var date = new Date().toISOString();
     var date1 = date.split("T");

     if(date1[0]==value1[0]){
         
       ws1.Cells.Item(yy,12).Value2 = "是";
     }else{
       ws1.Cells.Item(yy,12).Value2 = "否";
     }
}
    //1秒后执行JIn521代码
     //获取当前时间
     let now = new Date();
     let now_time = now.getTime();
     //设置定时时间,1秒后执行
     now.setTime(now_time+1000*1);
     Application.OnTime(now.toLocaleString(),'JIn521');
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值