Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 当单元格等于某个值时,今天自动填充';相邻单元格中的日期_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 当单元格等于某个值时,今天自动填充';相邻单元格中的日期

Google apps script 当单元格等于某个值时,今天自动填充';相邻单元格中的日期,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一份销售线索列表,我们希望跟踪线索是否回复了我们,如果是,在哪一天,我还希望跟踪他们是否转换,如果是,在哪一天 我们在收到回复或转换后手动输入单元格“Y”,但我希望旁边的单元格自动填充我们输入“Y”的日期 到目前为止,我已经能够找到一个脚本,它可以为工作表上的一列执行此操作,但实际上我正在尝试创建一个脚本,它可以为多个选项卡上的多列执行此操作 希望此屏幕截图有助于解释: 我发现这个脚本对一个专栏非常有效,但我很难让它对两个专栏有效: function onEdit(event){ var

我有一份销售线索列表,我们希望跟踪线索是否回复了我们,如果是,在哪一天,我还希望跟踪他们是否转换,如果是,在哪一天

我们在收到回复或转换后手动输入单元格“Y”,但我希望旁边的单元格自动填充我们输入“Y”的日期

到目前为止,我已经能够找到一个脚本,它可以为工作表上的一列执行此操作,但实际上我正在尝试创建一个脚本,它可以为多个选项卡上的多列执行此操作

希望此屏幕截图有助于解释:

我发现这个脚本对一个专栏非常有效,但我很难让它对两个专栏有效:

function onEdit(event){
var ColAF = 32; // Column Number of "AH"

var changedRange = event.source.getActiveRange();
if (changedRange.getColumn() == ColAF) {
// An edit has occurred in Column AF
var state = changedRange.getValue();
var adjacent = event.source.getActiveSheet().getRange(changedRange.getRow(),ColAF+1);
var timestamp = new Date(); // Get the current time
// depending on the selected value
switch (state) {
  case "y":
    // Write timestamp into adjacent cell
    adjacent.setValue(timestamp);
    break;
  case "Y":
    // Write timestamp into adjacent cell
    adjacent.setValue(timestamp);
    break;
  default:
    adjacent.setValue("");
    break
 }
}

这是一个样品

在您的示例中,当我将
32
更改为
4
时,它会按照您的预期工作。您的var名为
colAF
,它是索引32,但您的注释是
AH
,它是索引34

var ColAF = 32; // Column Number of "AH"
仔细检查你的射程

尝试添加一些日志以查看发生了什么

function onEdit(event){
var ColAF = 4; // Column Number of "AH"
var changedRange = event.source.getActiveRange();
Logger.log(changedRange.getColumn());
Logger.log(changedRange.getColumn() == ColAF);
if (changedRange.getColumn() == ColAF) { 
编辑与上述类似的代码,保存代码,然后进行更改。要查看日志,请转到调试器中的“查看”->“日志”

在上面的示例中,日志的输出是

  [18-01-08 19:51:42:815 ICT] 4.0
  [18-01-08 19:51:42:816 ICT] true

如果它不能解决问题,请粘贴您的实际代码

对不起,伙计们,32/34是从我正在使用的实际工作表中取出来的,但出于这个目的,它应该是1&3。不管怎样,我终于能够弄明白了,这比我最初认为的要简单得多,我将把答案贴在下面

function onEdit(e) {
if ([1,3].indexOf(e.range.columnStart) == -1 || ['y','Y'].indexOf(e.value) == -1) return;
e.range.offset(0, 1)
    .setValue(Utilities.formatDate(new Date(), "GMT-5", "MM-dd-yyyy"))}

唯一的方法是使用脚本。我一直在尝试编写一个脚本来完成这项工作,但一直有困难