如何获得正确的范围以将值设置为单元格?
Posted
技术标签:
【中文标题】如何获得正确的范围以将值设置为单元格?【英文标题】:How to get the correct range to set the value to a cell? 【发布时间】:2022-01-23 19:14:33 【问题描述】:我想通过脚本在 Google Sheet 中设置文本或数字。
我想在单元格F2
中设置Hello
或数字9
。到目前为止我找到了这段代码:
SpreadsheetApp.getActiveRange().setValue('hello');
但这并没有指定哪个单元格。
【问题讨论】:
我建议您通过尝试tutorials ?来阅读appscript的基础知识 【参考方案1】:解决方案: 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
附加到工作表的脚本是指脚本驻留在该工作表的脚本编辑器中。未附加意味着不驻留在该工作表的脚本编辑器中。它可以在任何其他地方。
【讨论】:
嗨 - 关于哪个“脚本处于活动状态”我有一个我想要的 INDEX/Table 公式在 Worsheet 'FianceIndex' 的单元格 D18 中当我在单元格本身中执行公式时它没有自动刷新 - 所以我想把它放在脚本中并应用触发器。 getActiveSheet() 的问题是所有其他工作表都得到它。我该如何解决?我尝试了 "getSheetName" SpreadsheetApp.getActiveSheet().getSheetName('FinanceIndex').getRange('D18').setValue('=Dollar(Index(Importhtml("apmex.com/silver-price","table",8),2,2))'); 我卡住了 试试SpreadsheetApp.getActiveSpreadsheet().getSheetName('FinanceIndex')
。否则请提出新问题***.com/help/how-to-ask
就是 Umair!谢谢【参考方案2】:
使用Range
类的setValue
方法设置特定单元格的值。
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);
【讨论】:
【参考方案3】:下面的代码做了需要做的事情
function doTest()
SpreadsheetApp.getActiveSheet().getRange('F2').setValue('Hello');
【讨论】:
如何用数字获取范围? c2单元格的坐标是多少? C2 是第三列第二行所以 >> getRange(2,3) >> getRange(row,col) 嗨,您现在如何获取当前单元格的行号和列号?如何为当前单元格设置值? @CharlesChow 您可以使用 SpreadsheetApp.getActiveSheet().getActiveCell().getRow() 和 SpreadsheetApp.getActiveSheet().getActiveCell().getColumn() 我会执行此解决方案,但我收到的消息是“您没有调用 setValue 所需的权限”。怎么了?我会在创建脚本时接受并提供身份验证。以上是关于如何获得正确的范围以将值设置为单元格?的主要内容,如果未能解决你的问题,请参考以下文章
DataTables:如何将类设置为表格行单元格(而不是表格标题单元格!)