google-apps-script - Google Apps 脚本 - 将包含今天日期的工作表中的行复制到另一个工作表中
问题描述
我要做的是在一个电子表格中,查看工作表“源”,如果 B 列中的单元格包含今天的日期,然后复制 A:B 之间的单元格以获取该单元格并粘贴到工作表“目标”中的下一个空行.
对包含今天日期的所有单元格重复此操作。
如果我正在寻找文本,这很有效,但基本上我试图让它每天在日期更改时自动运行,并且我无法让日期功能正常工作。
基本上在每天轮到的时候,它会从另一个自动工作表中复制今天的数据,然后将其粘贴到另一个工作表中昨天数据的下一行。
我对这一切都很陌生,任何帮助将不胜感激。
function copy_test() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Source"); //Source sheet
var ds = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Destination"); //Destination sheet
var testrange = ss.getRange('B:B'); //Column to check for today's date
var testvalue = (testrange.getValues()); //What value to check
var today = Utilities.formatDate(new Date(), 'GMT-0', 'dd/MM/yyyy');
var data = [];
var j = [];
//Condition to check in B:B, if true, copy the same row to data array
for (i=0;i<testvalue.length;i++) {
if (testvalue[i] == today) {
data.push.apply(data,ss.getRange(i+1,1,1,3).getValues());
//Copy matched ROW numbers to j
j.push(i);
}
}
//Copy data array to destination sheet
ds.getRange(ds.getLastRow()+1,1,data.length,data[0].length).setValues(data);
}
我得到的错误是:
TypeError:无法从未定义中读取属性“长度”。(第 20 行,文件“第一次测试”)
解决方案
以防将来有人遇到这个问题。我又弄乱了原始代码,并设法让它工作:
function copyrange() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Source'); //source sheet
var testrange = sheet.getRange('B:B');
var testvalue = (testrange.setNumberFormat("@").getValues());
var ds = ss.getSheetByName('Destination'); //destination sheet
var data = [];
var j =[];
var dt = new Date();
var today = Utilities.formatDate(new Date(), 'GMT-0', 'dd/MM/yyyy')
//Condition to check in B:B, if true, copy the same row to data array
for (i=0;i<testvalue.length;i++) {
if (testvalue[i] == today) {
data.push.apply(data,sheet.getRange(i+1,1,1,3).getValues());
//Copy matched ROW numbers to j
j.push(i);
}
}
//Copy data array to destination sheet
ds.getRange(ds.getLastRow()+1,1,data.length,data[0].length).setValues(data);
}
特别var testvalue
是我在其中添加setNumberFormat
日期作为文本的地方,因为这是它适用的唯一方法if (testvalue[i] == today)
感谢@Cooper 对此进行了尝试。
推荐阅读
- python - 我如何从前端检查下拉菜单是否为空而不显示?
- php - 如何在遍历 PHP 中的值时将多个值放入数组中
- javascript - 元素切换类但没有得到新类的样式
- sql - 如何透视此表?
- python - 带有 Qt 的圆角消息
- visual-studio - 如何为所有解决方案将 EditorConfig 文件导入 Visual Studio?
- javascript - 隐藏 div 中的表在动态附加 tr 时变得可见
- reactjs - Material UI:根据班级影响孩子
- azure-devops - 我可以在 Azure Devops (VSTS) 中恢复已删除的任务组吗?
- g1ant - ✱chrome 或 chrome✱ 有什么区别?