【问题标题】:Script Running in an Excel File and I want it to work in Google Sheets在 Excel 文件中运行的脚本,我希望它在 Google 表格中运行
【发布时间】:2020-01-16 20:20:18
【问题描述】:

我有一个 excel 文件(它是一个长记分表),它运行一个脚本,告诉文件显示文件的顶部,几秒钟后文件向下移动,并显示底部边缘Excel 文件。这个 excel 文件是一个琐事之夜的评分表,我正在尝试将 excel 文件放在谷歌表中,以便评委可以实时输入分数。现在我在表格中有文件,所以这很好,但是当我从 excel 文件中复制脚本并将其放入谷歌脚本编辑器时,我在尝试保存或运行脚本时不断收到错误消息。 (缺少 ; before 语句。(第 1 行,文件“代码”)解雇)

以下是两个示例。第一个示例是直接从 excel 文件复制的脚本,第二个示例是脚本在 google 脚本编辑器中的样子。有什么想法可以让这个脚本正常工作和运行吗? ' 示例 1:

Private Sub CommandButton1_Click()
    Call scrollPage
End Sub

Sub scrollPageForced()
    Dim rowStart As Integer
    Dim rowMax As Integer
    rowStart = 3    'The first row index to scroll to
    'rowMax = 41     'The maximum row to scroll to (that will be visible )

    rowMax = ActiveSheet.Range("AA2").Value

    Dim MyW As Window
    Dim rowI As Integer

    Set MyW = Windows(1)
    rowI = MyW.VisibleRange.Cells.Row + (MyW.VisibleRange.Cells.Rows.Count - 1)

    If rowI > rowMax Then rowI = rowStart
    Range("A" + CStr(rowI)).Select
    Application.Goto Reference:=ActiveCell, Scroll:=True
    Range("BB" + CStr(rowI)).Select  'Hide selection by selecting a bogus element on the SAME ROW
    ActiveWindow.SmallScroll ToLeft:=100 'Scroll back left to A (BB ==44)

    Application.OnTime Now + TimeValue("00:00:" + CStr(ActiveSheet.Range("AC2").Value)), "!Sheet1.scrollPage"
End Sub

Sub scrollPage()

    If ActiveSheet.Range("K2").Value <> 1 Then Call scrollPageForced

End Sub

示例 2:

Private Sub Command Button1_Click()
    Call scrollPage
End Sub

Sub scrollPageForced()
    Dim rowStart As Integer
    Dim rowMax As Integer
    rowStart = 3    'The first row index to scroll to
    'rowMax = 41     'The maximum row to scroll to (that will be visible )

    rowMax = ActiveSheet.Range("AA2").Value

    Dim MyW As Window
    Dim rowI As Integer

    Set MyW = Windows(1)
    rowI = MyW.VisibleRange.Cells.Row + (MyW.VisibleRange.Cells.Rows.Count - 1)

    If rowI > rowMax Then rowI = rowStart
    Range("A" + CStr(rowI)).Select
    Application.Goto Reference:=ActiveCell, Scroll:=True
    Range("BB" + CStr(rowI)).Select  'Hide selection by selecting a bogus element on the SAME ROW
    ActiveWindow.SmallScroll ToLeft:=100 'Scroll back left to A (BB ==44)

    Application.OnTime Now + TimeValue("00:00:" + CStr(ActiveSheet.Range("AC2").Value)), "!Sheet1.scrollPage"
End Sub

Sub scrollPage()

    If ActiveSheet.Range("K2").Value <> 1 Then Call scrollPageForced

End Sub

【问题讨论】:

    标签: excel vba google-apps-script google-sheets


    【解决方案1】:

    您应该知道 Excel 中的 VBA 代码不能在 Google 表格中执行。

    要在 Google 表格中执行代码,您需要使用专有的编码语言 Apps Script,基本上是带有内置类和函数的 Javascript,以使用 Google 产品,如(表格、文档、幻灯片、驱动器等)

    这里有 SpreadSheetApp 的所有引用,该类处理 Google 表格函数、类等。

    要查看具体案例,您可以查看getActiveRange()

    您可以进一步了解如何将这些应用程序迁移到 Google 或 Stack 上的 Apps 脚本,例如我找到了 this question 与此相关的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-08
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 2018-09-02
      • 1970-01-01
      • 2017-08-22
      相关资源
      最近更新 更多