全局变量值不可在多个函数中使用

2023-12-09

使用 Google Apps 脚本,我尝试创建一个可在多个函数中使用的全局变量(例如数组),但我似乎无法在任何地方找到答案,我需要它才能使我的 Google 电子表格正常工作。

Code:

var infoSheetArray = null;

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu')
      .addItem('Fetch Info', 'grabInfo')
      .addItem('Run Program', 'itemSetup')
      .addToUi();
}

function grabInfo() {
  var infoSheet = SpreadsheetApp.openByUrl('....');
  infoSheetArray = infoSheet.getSheetValues(1, 1, infoSheet.getLastRow(), 10);
}    

在你的代码中,infoSheetArray是一个全局变量scope,这意味着程序中的所有代码都可以访问它。不那么明显的是你的程序在不同的“机器”中运行多次,这就是为什么它可能会出现infoSheetArray正在重置。

脚本的每次单独执行都是在一个新的执行实例中完成的,每个实例都有自己的一组“全局变量”。例如,在您的示例片段中,onOpen()是在 Web 编辑器中打开电子表格时独立调用的自动触发函数。你还有另外两个功能,grabInfo() and itemSetup()(未显示)被调用独立地通过用户菜单扩展。

当这三个函数中的任何一个被独立调用时,都会为其创建一个执行实例,加载您的程序,然后开始执行。所有全局语句(例如var infoSheetArray = null;)首先被评估,然后是专门触发的函数。对全局变量所做的任何更改都将仅在发生更改的执行实例中保留,并且仅在需要该实例时保留。一旦函数完成,实例就会消失。

如果需要在执行实例之间保留值,则需要使用某种存储方法,例如物业服务 or an 外部数据库.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

全局变量值不可在多个函数中使用 的相关文章

  • NodeJS Express 中每个请求的全局范围

    我有一个基本的快速服务器 需要在每个请求处理期间存储一些全局变量 更深入地说 请求处理涉及许多需要存储在变量中的操作 例如global transaction 当然 如果我使用global范围 每个连接都将共享其事务的信息 并且我需要一个全
  • 谷歌表格在一行上的不同单元格范围上添加时间戳

    我一直试图在与该行上两个不同单元格范围相对应的行上放置两个时间戳 我已成功使用此脚本对行上的任何更改 第 5 列之后 添加时间戳 我想要的是 如果单元格范围 F 到 L 发生任何更改 则在 E 列中放置一个时间戳 然后 如果从 N 列到 Z
  • 重命名带有“完整工作表”图表的工作表会导致电子表格重新加载

    Google 表格允许将图表移动到自己的表格中 不过 谷歌脚本似乎无法重命名这些工作表 而不会使电子表格崩溃并强制其重新加载 要明白我的意思 请尝试以下操作 1 创建新的电子表格并在其中放入一些数据 2 使用数据创建任何类型的图表 3 编辑
  • 根据表单提交创建名称的新工作表

    在 Google Sheets 中 我有一个脚本 用于为提交的每个 Google 表单创建一个新工作表 它应该创建一个新工作表 其名称基于最后一列 G 列 不是表单提交的列 然后 它从最后一行和标题行获取信息并将其复制到创建的工作表的前两行
  • XPath 将元素中的所有文本作为一个值获取,删除换行符

    我试图获取以下一组节点中的所有文本并作为一个值返回 而不是多个节点 p I love eating out br br This is my favorite restaurant br I will definitely be back
  • 如何通过 Apps Script & Drive SDK 创建新的脚本文件

    尝试通过在 Apps 脚本中调用 Drive SDK 来创建包含文件的新项目 下面的内容到底会放在哪里UrlFetchApp要求 files id 9basdfbd 749a 4as9b b9d1 d64basdf803 name Code
  • Google Apps 脚本中 $.ajax() 的服务器端等效项是什么?

    我想在 Google App 脚本中从服务器端代码执行 HTTP 请求Authorization标头 是否有用于发送 HTTP 请求的 App Script API Google Apps 脚本中的这段代码相当于什么 var api URL
  • 全局变量用例

    我有几个脚本和模块 它们使用全局变量来完成很多事情 我的日志记录可以采用以下三种形式之一 简洁 详细和验证 没有实际操作的详细日志记录 仅验证提供的数据 我还有许多函数 它们根据运行的上下文 用户或机器 而做出不同的响应 并且正在执行的操作
  • 在 Google 表格中批量查找并替换正则表达式

    是否有函数 脚本或插件可以将大量正则表达式替换应用于 Google 表格中的一系列数据 我有一张包含地址列表的工作表 另一张工作表在两列中包含几十对正则表达式 例如 St 和 Street 我想替换地址中第一列短语的所有实例列出另一个中相应
  • 移动设备:缺少操作

    我正在尝试执行该操作的 POST 但是 当我发出请求时 我收到代码 400 表示操作值丢失 my code function mobileAPIPOST var response UrlFetchApp fetch https www go
  • Google 文档有内容控制吗?

    我对 Google 文档和内容控制有疑问 如果有的话 我们有一个系统 允许用户设计带有内容控件 rtf 文本 组合框等 的 MS Word 文档 并为控件分配一个 ID 以便我们的系统可以提取 ID 并注册答案 然后数据被保存在数据库中 什
  • 选择列的最后一个值

    我有一个电子表格 G 列中有一些值 有些单元格之间是空的 我需要将该列中的最后一个值获取到另一个单元格中 就像是 LAST G2 G9999 除了那个LAST不是一个函数 类似的答案卡里加里的回答 https stackoverflow c
  • 在 Google 网站中嵌入 Google 电子表格时,Google Apps 脚本可帮助解决错误?

    电子表格 A 是欢迎新移民来到我们小镇的团队的主数据源 它里面有大量非常敏感的数据 不能公开 哪怕是一点点 我们谈论的是孩子的姓名和出生日期以及他们上学的地方 保证电子表格 A 的安全是至关重要的任务 因此 电子表格 B 使用 import
  • Google 脚本过滤一个值的范围

    我想过滤第 1 列中仅包含 Bob 特定值的行的 google 工作表范围 到目前为止 我的代码允许我过滤out第 1 列中有 Bob 的行 我需要相反 我想返回第 1 列中只有 Bob 的行 因此 其中 filterSettings 不是
  • 如何在谷歌表格查询中转义双引号和单引号?

    我在谷歌表格单元格中有这个查询 QUERY Sheet1 A2 F SELECT WHERE A te xt text 0 我可以像这样转义双引号 text text 但是我怎样才能逃脱双引号和单引号呢 te xt text 一种可能的替代
  • 使用 Google Apps 脚本从 Firebase 读取数据

    因此 正如标题所示 我目前正在解决一个相当麻烦的问题 这是场景 我有一个 Google 电子表格 其中包含一个包含姓名 电子邮件和到期日期的模板 但是 它不包含实际数据 数据本身位于 Firebase 中并且不断变化 那么 我的目标是让sc
  • 使用 Google App Script 从一个电子表格跳转到另一个电子表格

    我有一个脚本 仅当我位于运行代码的当前工作表中时才有效 在 A1 中 我有一个复选框 其作用是刷新 api 请求 因此 我下面的代码单击复选框并获取新数据 所以我的代码的目的基本上是单击 A1 中的复选框 但是 运行此代码只会激活复选框 但
  • 生成多列范围的所有唯一值的列表,并根据这些值在最后 X 列中出现的次数对这些值进行评级

    正如标题所说 我有一个这样的范围 A B C duck fish dog rat duck cat dog bear bear 我想要的是获取范围内所有唯一值的单列列表 并根据它们在最后 X 列中出现的次数为它们分配评级 或等级 更多列不断
  • 我正在尝试将变量从 Google 脚本传递到 HtmlOutputFromFile

    我正在尝试创建一个带有下拉列表的输入框 其中该列表基于从电子表格中提取的二维数组 到目前为止 我的研究告诉我 如果我将 HtmlService createHtmlOutputFromFile 存储在一个变量中 我就可以 设置该变量的属性
  • 如何从 HTML 文件输入获取文件并将其作为 Google Apps 脚本中电子邮件的附件发送?

    此 HTML 代码使用 Google Script 的 HTML 类服务获取文件输入 见下文 我想获取输入字段的值 文件 发送到我的 gs 文件并将其作为电子邮件的附件发送 从输入字段获取值只会返回文件的目录 这没有任何帮助 因为 Goog

随机推荐

  • 使用 useEffect() 时最大深度超出反应错误

    错误 警告 超出最大更新深度 当组件在 useEffect 中调用 setState 但 useEffect 没有依赖项数组 或者依赖项之一在每次渲染时发生更改时 就会发生这种情况 const products setProducts us
  • 从一个表中获取另一表中没有记录的记录

    SURVEYS table SurveyID UserID Question Choice1 Choice2 Choice3 RESPONSES table UserID SurveyID Answer 第一个愿望 已实现 显示用户 28
  • iOS 7:如何仅允许 VC 纵向[重复]

    这个问题在这里已经有答案了 我的所有项目都允许以横向 纵向模式查看应用程序 但对于一个视图控制器 我想禁用此功能并仅以纵向显示它 我努力了shouldAutorotate and supportedInterfaceOrientations
  • 如何从 Struts 2 中选定的对象中获取对象属性

    我有一个清单City对象与name and id字段 我使用 Struts2 并且有一个带有 select 标签的 jsp 页面
  • 在 CodeIgniter 中安装omnipay 时出错

    我正在尝试在 CodeIgniter 版本 2 2 4 中添加omnipay 我按照使用此链接安装作曲家的说明进行操作 https philsturgeon uk blog 2012 05 composer with codeigniter
  • 如何限制 Google App Engine 的 Python 版本中特定方法的允许执行时间?

    由于 Google App Engine 的 python 版本不支持信号模块 如果方法在 2 秒内未返回 则调用方法并抛出 捕获异常的最简单方法是什么 如果您正在谈论 RPC 调用 例如数据存储 您可以创建一个带有截止日期的 RPC 请参
  • 在编写使用经销商 API 的应用程序时,我是否需要使用我的经销商域?

    我是 Google Apps 经销商 希望使用 Google API 例如Google Apps 转销商 API自动化我的经销商活动 当我注册成为 Google Apps 经销商时 我获得了一个新的 Google Apps 域 resell
  • 如何在编译时使用不同的接口声明而不混淆 Interface Builder

    例如 如果我的应用程序有多个版本 付费版本和免费版本 并且我希望根据哪个版本拥有不同的界面 那么 Interface Builder 似乎会感到困惑 例如 MyViewController h ifdef FREE interface My
  • Hive 连接优化

    我有两组数据都存储在 S3 存储桶中 我需要在 Hive 中处理这些数据并将输出存储回 S3 每个数据集的示例行如下 DataSet 1 requestId TADS6152JHGJH5435 customerId ASJHAGSJH se
  • 使用cat函数写入csv文件

    我需要使用 cat 函数向 CSV 添加新行 请你们帮帮我好吗 我对 R 的了解有限 这是文件 name1 csv 系统要求我将我的姓名和学生 ID 添加到前几行 homework1 lt data frame homework1 Tota
  • 将多个项目添加到列表中

    static class Program static void Main string carMake string carModel string carColour string bikeModel string bikeMake s
  • 添加边框时 CSS Div 跳转

    我不明白为什么当我将鼠标悬停在第一个框 左上角 上时 框会发生变化 我已将 box sizing 设置为 border box 因此悬停时添加的边框不会产生影响 并且它只发生在第一个框上 请帮忙 JS小提琴here box sizing b
  • AngularJS 中防止 IE 缓存的更好方法?

    我目前使用 service resource 进行 ajax 调用 在本例中为 GET 并且 IE 缓存这些调用 以便无法从服务器检索新数据 我使用了通过谷歌搜索找到的一种技术来创建一个随机数并将其附加到请求中 这样 IE 就不会去缓存数据
  • mc:edit 不适用于具有 Mandrill Javascript API 的 Mailchimp 模板

    我正在尝试使用 Mailchimp 模板通过 Mandrill API 发送电子邮件 我正在使用 Parse com 在云代码中执行此操作 请参阅此处https www parse com docs cloud modules guide
  • React Native TypeError:网络请求因 fetch() 失败

    我正在使用 React Native 来开发 Android 应用程序 通过此获取请求 我收到错误TypeError network request failed fetch https pixabay com api key MY KEY
  • R 中的自动虚拟变量

    我有以下创建的数据框 temp lt as data frame with uadm table prlo state code 我希望创建 11 个虚拟变量 前 10 名各一个 其他 一个 可以通过以下方式轻松找到前 10 名 top10
  • R过滤器包含子字符串多个条件

    嘿 我有一个 500K 行的列表 我需要按条件进行过滤 其中必须包含某些子字符串 另一个包含 20 个子字符串的列表 我在用dplyr现在打包 我的代码如下所示 result lt data gt filter grepl sub1 col
  • Java邮件与土耳其字符的问题

    我在使用 Java 代码发送的邮件中显示土耳其语字符时遇到问题 这些字符在邮件中显示为问号 Message msg new MimeMessage mailSession msg setHeader Content Encoding ISO
  • SetWindowsHookEx 全局键盘挂钩未捕获所有按键

    我正在编写属于自动化系统一部分的代码 我想添加一个键盘钩子来提前结束测试 我通过使用 SetWindowHookEx 来做到这一点 我的代码看起来很像这样 http support microsoft com kb 318804 这是我的
  • 全局变量值不可在多个函数中使用

    使用 Google Apps 脚本 我尝试创建一个可在多个函数中使用的全局变量 例如数组 但我似乎无法在任何地方找到答案 我需要它才能使我的 Google 电子表格正常工作 Code var infoSheetArray null func