首页 > 解决方案 > 如果另一个单元格在谷歌表格中不是空白,如何复制单元格值?

问题描述

原文解释:

我正在寻求帮助。我有一个记录新内容请求的表单,我希望它返回预期的完成日期。目前,我将队列放在一个单独的选项卡中,队列长度根据正在完成的内容的 countif False 计算。

如果第一列,工作表 1(新请求)不是空白,我需要将工作表 2 单元格 A1(当前队列长度)中的当前值复制并粘贴到工作表 1,第 2 列。每个新的表单响应都会影响队列长度,所以我需要将其粘贴为值。

基本上,我需要 IF Sheet1columnA<>Blank,将 Sheet2A1 作为值复制粘贴到 Sheet1ColumnB 中,但我仍在研究应用程序脚本,所以请提供任何帮助!

如果您需要任何进一步的信息,请告诉我

更新:尚未解决,但这是我得到的地方:

  function attempt() {
  let ss = SpreadsheetApp.openById(" removed due to data protection ");
  let sheet1 = ss.getSheetByName("New Requests");
  let sheet2 = ss.getSheetByName("Current Queue");
   var data = sheet1.getDataRange().getValues();
 // Iterates request by each row
 data.forEach(function (row) {
// First check if column I is blank
   if (row[8].isblank){
// then, if column A is not blank
   if (!row[0].isBlank()){
// copy Current Queue A1
     let valToPaste = sheet2.getrange(1,1).getValue();
// defines where to paste - This is where I'm struggling
     sheet1.getrange(row[8]).setValue(valToPaste)
   };
 });
}
}

实际上,我希望它用于“新请求”中的每一行,以检查 I 列是否为空白,如果是,请检查 A 列是否为空白。如果 A 不为空,则将“当前队列”A1 中的当前值粘贴到 I 列。

让我知道你的想法,我想我已经接近了!

标签: google-apps-scriptgoogle-sheets

解决方案


您可以从使用类似于此的脚本开始:

function copyVals() {
  let ss = SpreadsheetApp.openById("ID");
  let sheet1 = ss.getSheetByName("Sheet1");
  let sheet2 = ss.getSheetByName("Sheet2");
  let colA = sheet1.getRange('A:A');
  if (!colA.isBlank()) {
    let valToPaste = sheet2.getRange(1,1).getValue();
    sheet1.getRange(1,2).setValue(valToPaste);
  }
}

为了检查想要的列是否不为空,使用了该isBlank方法。如果条件检查,则valToPaste表示值 fromSheet2!A1的 将粘贴到Sheet2!B1中。

笔记

  • 您可能需要添加一个for循环,具体取决于您的具体需求。

  • 由于您提到您正在使用表单,您可能需要检查Apps Script triggers

参考


推荐阅读