javascript - 是否可以将单元格引用用作 getRange() 中的行/列位置?
问题描述
我正在尝试在电子表格库存中创建一个按钮,该按钮将在库存的右栏中快速添加正确的项目。我有一个专门用于此按钮的工作表,您可以在其中选择要添加到库存中的产品,然后单击“开始”,您的商品将进入我的库存的 10 列之一(取决于它是哪一列)以及数量和标签号. 列表中的选择与其每个托盘的物品数量(对于一个完整的托盘)以及它们应该在另一张表上的库存中进入的行号相关联。我使用过滤器功能在按钮表上显示这两个信息,以便当您按下按钮时,使用以下脚本行将显示的信息复制到库存中:
var destSheet = ss.getSheetByName("Fiche");
var lastRow = destSheet.getLastRow();
var source = ss.getRange ('A3');
var destColumn = ss.getRange ('B15');
source.copyTo(destSheet.getRange(lastRow + 1, destColumn), {contentsOnly: true});
其中 A3 是我在一个完整托盘上的产品数量,B15 是应该复制它的列。似乎使用变量 lastRow 可以为 getRange 提供其行位置,但变量 destColumn 不适用于列位置。只有当我用一个常数替换它时它才有效。我猜从 getLastRow 和 getRange 返回的数据类型不一样?有什么建议吗?
解决方案
您非常接近解决方案。您只需要.getValues()
在末尾添加,var destColumn = ss.getRange ('B15');
因此它会读取单元格内的数字(因为.getRange()
稍后使用的方法适用于此处详述的整数)。最终结果应如下所示:
function myFunction() {
/*var ss = SpreadsheetApp.openById(
"{SPREADSHEET ID}");*/
var destSheet = ss.getSheetByName("Fiche");
var lastRow = destSheet.getLastRow();
var source = ss.getRange('A3');
var destColumn = ss.getRange('B15').getValues();
source.copyTo(destSheet.getRange(lastRow + 1, destColumn), {
contentsOnly: true
});
}
推荐阅读
- scrollbar - 即使在未单击程序本身的情况下按住鼠标,如何使程序正常运行
- html - 如何对齐名称和消息
- android-studio - 带有 Kotlin 的 Android Studio 如何控制从 MainActivity 传递到另一个类
- r - ggplot 从图例中删除 geom_label 边框
- javascript - React Native:Stack Navigator mode='card' 或 mode='modal' 不起作用(世博项目)
- python - 如何创建实例特定的功能计数器?
- java - 插入排序访问/可用性问题
- sharepoint - 从 SharePoint Online 下载 CSOM OAuth - 远程服务器返回错误:(401) 未经授权
- javascript - 是否可以从 html 事件处理程序调用 React
- ios - 使用 Swift 将 App Token 添加到 URLSession