用于将另一个 sheet 的值添加到月历 sheet - Google 工作表的脚本

script to add values from another sheet to monthly calendar sheet - Google Sheets

我在这样的列中有 4 个名字:

A
B
C
D

我想将它们添加到这个动态月历模板中:https://docs.google.com/spreadsheets/d/1RZ9RXTg44XkBBZx98eKeGWajYVgrULaz64Ws7FpaPGI/edit?usp=sharing

每天至少有 1 个名字,每 2 天有 2 个不同的名字(无重复)。预期结果如下:

(更新) 我的问题:

  • This is a Dynamic Calendar, which update date cells by the month. How can I set values to only the date cells in month (ignore the blue cells)?
  • How can I set 4 values into, example, 30 days order like 1-A, 2-B, 3-C, 4-A, 5-B?

解决您更新后的问题:

1.如何仅将值分配给包含有效日期的单元格

  • 您可以编写一个脚本来检查数字(=日期)感兴趣范围的单元格内容,并将值插入到数字下方的单元格中: if(typeof contents[i][j]=="number")

2。如何按顺序用值 A、B、C、D 填充日历

  • 您可以将感兴趣的值分配给一个数组,并使用模数从 0 开始循环的第 4 次结束后遍历数组: k=(k+1)%4;

Sample:

function myFunction() {
  var myValues=["A", "B", "C", "D"];
  var k=0;
  var myValue="";
  var myRange=SpreadsheetApp.getActive().getSheetByName("January 2019").getRange("A3:G16");
  var contents=myRange.getValues();
  for (var i=0; i<contents.length;i++){
    for (var j=0; j<contents[0].length;j++){
      if(typeof contents[i][j]=="number"){
        Logger.log(contents[i][j] + " is a number");
        myValue=myValues[k];
        myRange.getCell(i+2,j+1).setValue(myValue);
        k=(k+1)%4;
      }
    }
  }
}