如何实现自动判定然后定时累加?

阅读次数 152

例如每天更新一个表格的A1单元格,如果A1单元格今天没更新,那就在B1单进行数值+1。 现在需要写的程序用中文表述如下: 若A1的值为"",在B1单元格数值+1
若A1的值不为"",B1单元格数值不变

有大佬教一下这个咋写吗,程序语言用的太少,不太会写

我不明白A1不更新是没内容呢还是时间没更新?

时间到了,A1内容未填,但是要求填写,所以记录没有填写的次数

4 Answers
// 定义API
const API = Application;

// 定义使用区域
var UsedRange = API.ActiveSheet.UsedRange;

var firstCol = UsedRange.Column;
var lastCol = UsedRange.ColumnEnd;
var firstRow = UsedRange.Row;
var lastRow = UsedRange.RowEnd;

// 打印激活区域的范围
console.log(
  '[' + 'firstCol: ' + firstCol + ']',
  '[' + 'lastCol: ' + lastCol + ']',
  '[' + 'firstRow: ' + firstRow + ']',
  '[' + 'lastRow: ' + lastRow + ']'
)

//'#FF0000' 红色
//'#FFFF00' 黄色

for (let i = firstRow + 1; i <= lastRow; i++) {
  //如果没有大标题和小标题firstRow+0,如果有大标题firstRow+1,如果有大标题和小标题firstRow+2

  let cellA = Cells(i, 'A').Text;//获取A列单元格文本内容
  let cellB = Cells(i, 'B').Text;//获取B列单元格文本内容
  let cellC = Cells(i, 'C').Text;//获取C列单元格文本内容

  //如果A列B列C列单元格都没有内容
  if (!cellA && !cellB && !cellC) {
    let cellD = Cells(i, 'D').Text;//获取D列单元格文本内容
    if (cellD) {
      let n = parseInt(cellD.match(/\d+/)[0]) + 1;
      Cells(i, 'D').Value = n;//D列单元格找到计数[=N]
    } else {
      Cells(i, 'D').Value = 1;//D列单元格没有计数[=1]
    }
  }
}

大概就是这样,你自己测试吧。

谢谢,我看看

这里还有个疑问,如果不止A列纳入需要更新的范围,从A到C都要有内容,可否写成cellA:C? 还有就是行的要求,如何限定从第2行或者第3行才开始,然后到第n行结束,这个范围没看懂在哪里改?

If A1="",B1=B1+1,else,B1=B1 这样可以吗?

不懂,运行不了

cells和range的使用方法不是很能理解,如何在if语句中明确单元格具体位置?