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

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 所需的权限”。怎么了?我会在创建脚本时接受并提供身份验证。

以上是关于如何获得正确的范围以将值设置为单元格?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取excel表格中占用单元格的范围

DataTables:如何将类设置为表格行单元格(而不是表格标题单元格!)

如何获得“选择案例以测试范围内的每个单元格?

VBA代码将值从一个单元格复制到特定列

如何获得默认的单元格分隔符颜色?另外,如何设置每个单元格的分隔符颜色?

Winform中DataGridView如何获得单元格中复选框,以及代码设置单元格内容。