Скрипт работает в файле Excel, и я хочу, чтобы он работал в Google Sheets - PullRequest
1 голос
/ 16 января 2020

У меня есть файл Excel (это лист с длинным счетом), который запускает скрипт, который указывает файлу показать верхнюю часть файла, а через несколько секунд файл сдвигается вниз и показывает нижний край Файл Excel. Этот файл Excel представляет собой таблицу результатов для викторины, и я пытаюсь поместить файл Excel в таблицы Google, чтобы судьи могли вводить результаты в режиме реального времени. Прямо сейчас у меня есть файл в Sheets, так что это хорошо, но когда я go копирую скрипт из файла excel и помещаю его в редактор скриптов Google, я получаю сообщение об ошибке при попытке сохранить или запустить скрипт. (Отсутствует; до утверждения. (Строка 1, файл "Код") Уволить)

Ниже приведены два примера. Первый пример - это скрипт, скопированный прямо из файла Excel, а второй пример - как скрипт выглядит в редакторе скриптов googles. Любые идеи, как я могу заставить этот скрипт работать и работать правильно? ' Пример 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

1 Ответ

1 голос
/ 17 января 2020

Вы должны знать, что код VBA в Excel не может быть выполнен в Google Sheets.

Для выполнения кода в Google Sheets вам необходимо использовать собственный язык кодирования Apps Script , в основном Javascript со встроенными классами и функциями для использования таких продуктов Google, как (Sheets, Docs, Slides, Drive, et c.)

Здесь у вас есть все ссылки для SpreadSheetApp, класса, который имеет дело с функциями, классами Google Sheets и т. Д. c.

Чтобы просмотреть конкретный случай c, вы можете взглянуть на getActiveRange()

Далее вы можете узнать, как перенести эти приложения в Apps Script. например, в Google или здесь, в стеке, я нашел этот вопрос относительно этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...