Google表:提交按钮以将值从Workbook A到Workbook B

发布于 2025-01-24 15:00:27 字数 1349 浏览 1 评论 0原文

我是新手,我可以使用一些帮助。

我正在创建一个非常简单的形式,其中一个人将在4个单元格中输入数据,然后按下一个提交按钮以记录在其他表格中。

在将数据提交给同一工作簿中的不同表格时,我几乎得到了我想要的确切功能,但是我需要将这些数据完全记录在其他工作簿中。

我一直在寻找解决方案,但我发现最类似的东西不是我需要的。

目前,我拥有的代码确保所有单元格被填充,否则会中断代码,将信息从“ Sheet1”复制到“ Sheet2”,并在完成后清除单元格。以下提交将继续在下一行中添加数据。

我将需要完全相同的事情,但是在“工作簿A”中的“ sheet1”上的信息要发送到“工作簿B”中的“ sheet2”。

这是我目前的代码:

//Clear form
function ClearF(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var formS = ss.getSheetByName("Form");

  var rangesToClear = ["E8", "H8", "K8", "N8"];
   for (var i=0; i<rangesToClear.length; i++) {
     formS.getRange(rangesToClear[i]).clearContent();
   }
}
//----------------------------------------------------
//Input values for Agent Form
function SubmitHours() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var formS = ss.getSheetByName("Form");
  var dataS = ss.getSheetByName("Database");

  var values = [[formS.getRange("E8").getValue(),
                 formS.getRange("N8").getValue(),
                 formS.getRange("H8").getValue(),
                 formS.getRange("K8").getValue()]];

if (values[0].some(val => val === '')) {throw new Error ("REQUIRED FIELD IS EMPTY");
return;
}
dataS.getRange(dataS.getLastRow()+1, 1, 1, 4).setValues(values);
Browser.msgBox("We got it. Thanks!");

ClearF();
}

任何帮助都将不胜感激。

I am new to this and I could use some help.

I am creating a very simple form in which a person will enter data in 4 cells, then press a Submit button for this info to be recorded in a different sheet.

I pretty much got the exact thing I want when it comes to submitting the data to a different Sheet within the same Workbook, however I would need this data to be recorded in a different Workbook altogether.

I have been looking for a solution for some time, but the most similar thing I found are not quite what I need.

The code I have at the moment makes sure all cells are filled, interrupting the code otherwise, copies the info from "Sheet1" to "Sheet2", and clears the cells once it's done. A following submission would continue adding data in the next row.

I would need the exact same thing, but that information on "Sheet1" in "Workbook A" to be sent to "Sheet2" in "Workbook B"

Here is the code I have at the moment:

//Clear form
function ClearF(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var formS = ss.getSheetByName("Form");

  var rangesToClear = ["E8", "H8", "K8", "N8"];
   for (var i=0; i<rangesToClear.length; i++) {
     formS.getRange(rangesToClear[i]).clearContent();
   }
}
//----------------------------------------------------
//Input values for Agent Form
function SubmitHours() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var formS = ss.getSheetByName("Form");
  var dataS = ss.getSheetByName("Database");

  var values = [[formS.getRange("E8").getValue(),
                 formS.getRange("N8").getValue(),
                 formS.getRange("H8").getValue(),
                 formS.getRange("K8").getValue()]];

if (values[0].some(val => val === '')) {throw new Error ("REQUIRED FIELD IS EMPTY");
return;
}
dataS.getRange(dataS.getLastRow()+1, 1, 1, 4).setValues(values);
Browser.msgBox("We got it. Thanks!");

ClearF();
}

Any Help would be greatly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

硪扪都還晓 2025-01-31 15:00:27

提交并清除

function SubmitHours() {
  const ss = SpreadsheetApp.getActive();
  const fsh = ss.getSheetByName("Sheet0");
  const dss = SpreadsheetApp.openById(gobj.globals.ssid);
  const dsh = dss.getSheetByName("Sheet1");
  const rgl = fsh.getRangeList(["E8","N8","H8","K8"]);
  let vs = rgl.getRanges().map(r => !r.isBlank()?r.getValue():null).filter(e => e);
  if (vs.length == rgl.getRanges().length) {
    dsh.getRange(dsh.getLastRow() + 1, 1, 1, 4).setValues([vs]);
    rgl.getRanges().forEach(r => r.clearContent());
  } else {
    ss.toast("Incomplete Data");
  }
}

Submit and Clear

function SubmitHours() {
  const ss = SpreadsheetApp.getActive();
  const fsh = ss.getSheetByName("Sheet0");
  const dss = SpreadsheetApp.openById(gobj.globals.ssid);
  const dsh = dss.getSheetByName("Sheet1");
  const rgl = fsh.getRangeList(["E8","N8","H8","K8"]);
  let vs = rgl.getRanges().map(r => !r.isBlank()?r.getValue():null).filter(e => e);
  if (vs.length == rgl.getRanges().length) {
    dsh.getRange(dsh.getLastRow() + 1, 1, 1, 4).setValues([vs]);
    rgl.getRanges().forEach(r => r.clearContent());
  } else {
    ss.toast("Incomplete Data");
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文