我有一个模拟电子表格,其中包含here!
我编写的代码采用了下拉值"已完成"当这个"完成"选中,它会发布当前日期:
function onAnotherSwitch() {
var ss = SpreadsheetApp.getActive()
var sheet = ss.getSheetByName("Meeting Completed");
var activeCell = sheet.getActiveCell();
var col = activeCell.getColumn();
var row = activeCell.getRow();
if (col == 10 && activeCell.getValue() === "Completed") {
sheet.getRange(row, col+1).setValue(new
Date()).setNumberFormat('MM/dd/yyyy');
}
}
我正在尝试编写另一个函数,当"完成"被选中,但取而代之的是从表单和会议成员列表#34;并将Ytd考勤值放在表格#34;会议已完成的时间戳右侧的两个空格处。"年初至今应与参加者的姓名相对应。另外,由于我打算在这两个工作表中添加更多列,我试图让它按列名搜索这些值。
我最接近的是这样的事情:
function onAnotherSwitch() {
var ss = SpreadsheetApp.getActive()
var sheet = ss.getSheetByName("Meeting Completed");
var activeCell = sheet.getActiveCell();
var col = activeCell.getColumn();
var row = activeCell.getRow();
if (col == 10 && activeCell.getValue() === "Completed") {
sheet.getRange(row, col+1).setValue(
}
}
答案 0 :(得分:2)
您没有指定哪个列具有与会者的名称,该列用于匹配两个工作表之间的数据。传统上,这种数据在第一列,所以我认为它是。然后脚本可以是这样的:
function attendance() {
var ss = SpreadsheetApp.getActive()
var sheet = ss.getSheetByName("Meeting Completed");
var activeCell = sheet.getActiveCell();
var col = activeCell.getColumn();
var row = activeCell.getRow();
if (col == 10 && activeCell.getValue() === "Completed") {
var name = sheet.getRange(row, 1).getValue(); // get the name from column A
var listSheet = ss.getSheetByName("List of Meeting Members");
var data = listSheet.getDataRange().getValues(); // all data from that sheet
var colIndex = data[0].indexOf('Ytd Attendance'); // found column with attendance
var attendance = 'N/A'; // in case there's no data for this person
for (var i = 1; i < data.length; i++) {
if (data[i][0] == name) { // found the name
attendance = data[i][colIndex]; // took attendance
break;
}
}
sheet.getRange(row, col+2).setValue(attendance);
}
}
阅读本文时,请记住方括号中的索引以0开头(在JavaScript中是标准的),而在表格中,列/行编号以1开头。