如何将VBA转换为Google应用程序脚本?

如何将VBA转换为Google应用程序脚本?,vba,google-apps-script,google-sheets,Vba,Google Apps Script,Google Sheets,我的公司正在从微软Office转换到谷歌文档,我有一些代码想在谷歌电子表格中使用,但我不知道怎么做 考虑以下代码示例: Private子工作表\u更改(ByVal目标作为范围) 如果不相交(目标,范围(“E:J”))则为零 单元格(Target.Row,1)=月份名称(月(日)) 单元格(Target.Row,2)=格式(现在为“mm/dd/yyyy”) 如果结束 端接头 函数的结构如下: Private Sub Worksheet_Change(ByVal Target As Range)

我的公司正在从微软Office转换到谷歌文档,我有一些代码想在谷歌电子表格中使用,但我不知道怎么做

考虑以下代码示例:

Private子工作表\u更改(ByVal目标作为范围)
如果不相交(目标,范围(“E:J”))则为零
单元格(Target.Row,1)=月份名称(月(日))
单元格(Target.Row,2)=格式(现在为“mm/dd/yyyy”)
如果结束
端接头

函数的结构如下:

Private Sub Worksheet_Change(ByVal Target As Range)
  Statements here
End Sub
这可能会转化为:

function Worksheet_Change(ByVal) {
  Statements Here;
};
JavaScript中的函数不是以
End-Sub
结尾,而是以大括号
}
结尾

if (condition) {code here;}
If,then语句的结尾不是
End If
,而是一个大括号
}

if (condition) {code here;}

这是JavaScriptIf语句的语法。JavaScript中没有
Then
关键字。

这在google应用程序脚本中目前是不可能的,因为电子表格服务中既没有工作表选择更改事件,也没有选择更改事件。Google电子表格事件列表如下所示

但是我们有气体,通过这个,你可以在某个特定的时间运行一个函数。在你的情况下,让我们假设上午12点。您必须编写一个函数,该函数将在上午12点运行,以浏览所有工作表,然后将单元格(Target.Row,1)和单元格(Target.Row,2)格式化为您喜欢的格式


当然,你必须重组你目前的电子表格。。。欢迎使用谷歌应用脚本。

使用GSpread.NET。使用Microsoft Excel API使用Google电子表格。 您不需要重写所有代码,只需将CreateObject(Excel.Application)替换为CreateObject(GSpreadCOM.Application)

在2020年,谷歌发布了一个插件,可以自动将VBA转换为应用程序脚本

注:

  • 只有企业用户才能访问此加载项
  • 某些API无法自动转换(例如,文件系统上的操作)。你必须手工重写它们

这并不简单,我相信没有这种“转换器”,我建议您仔细阅读文档并尝试一些教程。应用程序脚本使用JavaScript。你需要学习JavaScript。如果你一直在用VBA编程,你不会觉得谷歌应用程序脚本那么难。查看一下,您将在那里看到您需要的大部分功能。当您转到“工具|脚本编辑器…”并选择“电子表格”脚本时,您将获得一些模板代码。阅读谷歌文档中的“电子表格”、“工作表”和“范围”部分,应该可以让你了解剩下的内容。。。“我的公司正在从Office转向Google文档”——这可能是个坏主意。将敏感的公司文档置于主要安全模型为web的其他人的控制下通常是不明智的。网络安全模型糟糕透了。当他们无法处理威胁时,他们只需将其从模型中删除。我投票关闭此项,因为这是一个代码转换请求,这是一个离题的问题: