首先,我必须承认我对此是全新的,并且直到最近才开始使用Google表格中的脚本功能来更新工作中的计划表。所以裸露我:)为了使此特定功能正常工作,我正在一个简单的测试表中对其进行尝试。
我在FEBRUARI工作表中有两个工作表(STATUS和FEBRUARI),我已经选择了某个单元格。该单元格具有一个值。我要脚本执行的操作是查看该值,然后在STATUS表中找到该值(例如,它在A1中找到了它),然后将B1中的值返回到FEBRUARI表中所选单元格中的单元格注释中。例如:在单元格中显示“ Project 6”,单元格注释提供有关此项目的信息。
这就是我得到的。这给了我一个确定的值(-1),但是我放置lookupvalue的位置似乎并不重要。它总是返回-1。
// My Script
function noteSetter() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var lookupvalue = SpreadsheetApp.getActiveSheet().getActiveCell().getValue();
var sheet = ss.getSheetByName("STATUS"); //source sheet
var sheet2 = ss.getSheetByName("FEBRUARI"); //result sheet
var cellnote = SpreadsheetApp.getActiveSheet().getActiveCell();
var lc = sheet.getLastColumn()
var lookup = sheet.getRange(1,1,1,lc).getValues() //
var index = lookup.indexOf(lookupvalue)
cellnote.setNote(index);
// This part will actually run the script once it's up and running
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Set cell note",
functionName : "noteSetter"
}];
sheet.addMenu("Scripts", entries);
};
}
感谢帮助!
var lookup = sheet.getRange(1,1,1,lc).getValues();
var index = lookup.indexOf(lookupvalue)
第一行返回一个2D数组。 indexOf()仅适用于展平数组。尝试使用:
var lookup = sheet.getRange(1,1,1,lc).getValues()[0];