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,我正在使用以下代码使用Google应用程序脚本中的数据: function getCurrentRow() { var currentRow = SpreadsheetApp.getActiveSheet().getActiveSelection().getRowIndex(); return currentRow; } 但是,当我使用第一个工作表以外的其他工作表(数字“gid=0”)时,我的函数仍然从第一个工作表而不是当前活动工作表获取数据。由于我使用的是.g

我正在使用以下代码使用Google应用程序脚本中的数据:

function getCurrentRow() {
      var currentRow = SpreadsheetApp.getActiveSheet().getActiveSelection().getRowIndex();
      return currentRow;
    }
但是,当我使用第一个工作表以外的其他工作表(数字“gid=0”)时,我的函数仍然从第一个工作表而不是当前活动工作表获取数据。由于我使用的是
.getActiveSheet()
方法,我如何解决这个问题

PS-我不是从手机里打电话。我正在使用以下代码:
您是否将函数用作公式

也许我不太了解这个案例,但使用您的代码作为公式,它可以按预期工作

表1
(活动)中,应用以下公式:

然后手动更改
表2
(激活)并再次应用公式:


这是因为您是从单元格中的自定义函数调用它。您不能这样做,因为自定义函数必须是确定性的。西基多的答案是有效的,因为他正在使用另一个细胞来审判第二个案例。如果使用相同的单元格,它将显示旧的缓存结果。搜索s.o.以了解有关dedeterministic函数的问题。我在这些方面提供了工作区(基本上通过了第二个param=now()

我从头创建了一个全新的电子表格,在其中,我创建了几个选项卡/表格,每个选项卡/表格中都包含一些数据;然后在该电子表格中的google apps脚本中,我安装了以下代码:

function getCurrentRow() {
  var currentSelection = SpreadsheetApp.getActiveSheet().getActiveSelection()
  var currentValue = currentSelection.getValue();
  var currentRow = currentSelection.getRowIndex();
  Logger.log(currentValue);
  Logger.log(currentRow);

  return currentRow;
}
我运行了脚本,它为我提供了打开的工作表/选择了哪个单元格的正确结果


在您的情况下,我是否可以建议,获取有关错误的更多信息或查看错误是否仍然存在的最快方法是,您也从零开始,使用新的电子表格,粘贴上面的代码,然后进行测试,以证明至少有这么多的代码对您也有效。然后,仅在此之后,粘贴更大的代码(您链接到的代码),然后查看它是否仍然/停止工作。

在google drive中创建一个电子表格并保存它。 在电子表格中,转到“工具”菜单和“脚本编辑器”
然后键入函数。

在脚本编辑器中开发时,我遇到了相同的问题——脚本编辑器实例/窗口与Sheets实例/窗口“断开连接”,并且只有第一个sheet/A1等作为“活动”

对我有用的是: 关闭“脚本编辑器”窗口并从“工作表>工具>脚本编辑器”重新打开。瞧,
.getActive…()s
正在重新工作

也:
正如其他一些答案所暗示的,从Sheets窗口/实例触发执行(可能总是)同样有效。其中一个答案从单元格调用一个函数,这意味着它将由工作表触发。另一个选项是添加一个.UI菜单和菜单选项并在那里触发它。

谢谢,@zig Mandel,但我不是从自定义函数使用它。我使用的代码是:尽管最近t downvote。如果您不了解确定性函数,请随时通知我。谢谢,@wchiquito。我不是从自定义函数使用它。我使用的是以下代码:不包含或使用
getCurrentRow()
,因此您可以详细说明两者之间的关系吗?您如何调用
getCurrentRow()
?这是基本信息,不能解决问题。