如何获取正确的范围以设置单元格的值?

155

我想从脚本中设置Google表格中的文本或数字。

我想在单元格F2中设置文本Hello或数字9。到目前为止,我找到了以下代码:

SpreadsheetApp.getActiveRange().setValue('hello');

但那并未指定哪个单元格。


6
我可以建议您通过尝试教程来阅读appscript的基础知识。 - Serge insas
3个回答

253

以下代码实现了所需功能

function doTest() {
  SpreadsheetApp.getActiveSheet().getRange('F2').setValue('Hello');
}

2
如何使用数字获取范围?C2单元格的坐标是什么? - JuanPablo
11
C2是第三列第二行,因此应使用getRange(2,3)或getRange(row,col)函数获取该单元格范围。 - Serge insas

55

使用setValue方法来设置特定单元格的值,Range类的方法。

function storeValue() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  // ss is now the spreadsheet the script is associated with
  var sheet = ss.getSheets()[0]; // sheets are counted starting from 0
  // sheet is the first worksheet in the spreadsheet
  var cell = sheet.getRange("B2"); 
  cell.setValue(100);
}

您还可以使用行号和列号选择单元格。

var cell = sheet.getRange(2, 3); // here cell is C2

同时设置多个单元格的值也是可能的。

var values = [
  ["2.000", "1,000,000", "$2.99"]
];

var range = sheet.getRange("B2:D2");
range.setValues(values);

25

解决方案:SpreadsheetApp.getActiveSheet().getRange('F2').setValue('hello')

说明:

在脚本所附加的电子表格中设置单元格的值

SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME).getRange(RANGE).setValue(VALUE);

在当前打开的表格中设置单元格的值,该表格已经附加了脚本

SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(RANGE).setValue(VALUE);

在某个没有脚本附加的电子表格中设置单元格的值(目标工作表名称已知)

SpreadsheetApp.openById(SHEET_ID).getSheetByName(SHEET_NAME).getRange(RANGE).setValue(VALUE);

将某个电子表格中没有附加脚本的单元格设置为特定值(已知目标表位置)

SpreadsheetApp.openById(SHEET_ID).getSheets()[POSITION].getRange(RANGE).setValue(VALUE);

这些是常量,你必须自己定义它们

SHEET_ID

SHEET_NAME

POSITION

VALUE

RANGE

所谓附加到工作表的脚本是指该脚本驻留在该工作表的脚本编辑器中。未附加则表示不驻留在该工作表的脚本编辑器中,它可以在任何其他地方。


嗨 - 关于“脚本正在运行”的问题我有一个索引/表公式想要放在' FianceIndex '工作表的D18单元格中。 当我在单元格中键入公式时,它不会自动刷新。所以我想把它放在一个脚本中并应用触发器。但是使用getActiveSheet()存在一个问题,因为其他所有工作表都会得到它。我该如何解决这个问题呢? 我尝试了“getSheetName”SpreadsheetApp.getActiveSheet().getSheetName('FinanceIndex').getRange('D18').setValue('= Dollar(Index(ImportHTML("https://www.apmex.com/silver-price", "table", 8),2,2))');我卡住了。 - Robert Long
1
尝试使用SpreadsheetApp.getActiveSpreadsheet().getSheetName('FinanceIndex')。否则请提出一个新问题https://stackoverflow.com/help/how-to-ask - Umair Mohammad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接