我的公司正在从Microsoft Office切换到Google Docs,我有这个(几个)代码我想在Google Spreadsheets中使用,但我不知道如何做到这一点。
考虑这个代码示例:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E:J")) Is Nothing Then
Cells(Target.Row, 1) = MonthName(Month(Date))
Cells(Target.Row, 2) = Format(Now, "mm/dd/yyyy")
End If
End Sub
答案 0 :(得分:5)
如果您想从VBA转换为GAS,您必须查看一个网站http://ramblings.mcpher.com/
如果该网站没有帮助,我猜您遇到了大麻烦!
答案 1 :(得分:1)
该功能的结构如下:
Private Sub Worksheet_Change(ByVal Target As Range)
Statements here
End Sub
这可能会转换为:
function Worksheet_Change(ByVal) {
Statements Here;
};
而不是End Sub
JavaScript中的函数以大括号}
结尾。
而不是End If
,If,then语句也以大括号}
结尾。
if (condition) {code here;}
这是JavaScript If 语句的语法。 JavaScript中没有Then
关键字。
答案 2 :(得分:1)
使用GSpread.NET。使用Microsoft Excel API处理Google Spreadsheets。 您无需重写所有代码,只需将CreateObject(Excel.Application)替换为CreateObject(GSpreadCOM.Application)。
答案 3 :(得分:1)
2020 年,Google 发布了 Macro Converter 插件,可自动将 VBA 转换为 Apps 脚本。
注意:
答案 4 :(得分:0)
目前在谷歌应用脚本中这是不可能的,因为电子表格服务中既没有工作表选择更改事件也没有选择更改事件。 Google电子表格活动列表为Here。
但是我们在GAS中有time driven triggers,通过这个你可以在某个特定的时间运行一个函数。在你的情况下,让我们说早上12点。您必须编写一个函数,该函数将在上午12点运行以遍历所有工作表,然后将Cell(Target.Row,1)和Cells(Target.Row,2)格式化为您喜欢的格式。
当然,您必须重新构建当前的电子表格...欢迎使用Google App Scripting。