获取值从一个谷歌表输入到另一个表与4循环

Get Values from one google sheet enter it onto another sheet with a 4 loop

本文关键字:输入 另一个 循环 谷歌 一个 获取      更新时间:2023-09-26

我必须使用电子表格。我想让程序查看电子表格Ind上的A行,看看它是1还是0。如果它是一个在活动表"返回"上,我希望它从电子表格"Ind"的行D中抓取日期,并将其发布到电子表格"返回"。我不能弄清楚这一点,我有它在excel中的VBA工作。

任何帮助都将非常感激。

function myFunction() {
 X = 5;
 Y = 2;
 Z = 1;
 Count = 4560;
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var source_sheet = ss.getSheetByName("Ind");
 var target_sheet = ss.getSheetByName("Returns");
 while (Z < Count){
   if (source_sheet.getRange("A" & X) = 1) { 
      var buydate = source_sheeet.getRange("D" & X).getValues()
      target_sheet.getRange("A" & Y) = buydate
      target_sheet.getRange("B" & Y) = "Buy"
      Y = Y + 1
   } else if (source_sheeet.Range("C" & X) = 2) {
      var selldate = source_sheeet.Range("D" & X).getvalues()
      target_sheet.getRange("A" & Y) = selldate
       target_sheet.getRange("B" & Y) = "Sell"
       Y = Y + 1
   }
    X = X + 1
   Z = Z + 1
  }}

这一行:

if (source_sheet.getRange("A" & X) = 1) {

使用了一个&号,它应该是一个加号。要在JavaScript中连接字符串,请使用加号。

同样,source_sheet.getRange()将返回一个范围,而不是一个值,所以它永远不会等于1。您需要使用如下内容:

if (source_sheet.getRange("A" + X.toString()).getValue() === 1) {

并使用三个等号进行相等性检查。JavaScript不断尝试将变量强制转换为看起来正确的类型。因此,它可能会将变量"X"中的数字转换为字符串,但您也可以使用toString()方法。

getValues()返回一个二维数组。每个内部数组代表一行。内部数组中的每个元素代表一行中的一个单元格。

如果您只想获得一个值,请使用getValue()(末尾没有"s")而不是getValues()

var buydate = source_sheet.getRange("D" + X.toString()).getValue();

您正在尝试使用等号来设置值。这行不通。您需要使用setValue()setValues()方法。

target_sheet.getRange("A" + Y.toString()).setValue(buydate);

通过在赋值中不使用var关键字,变量将自动成为"全局"变量。

X = 5;
Y = 2;
Z = 1;

在这种情况下,我认为没有必要让它们成为全局变量。

var X = 5,
    Y = 2,
    Z = 1;

可以同时声明多个变量