12

У меня есть эти действительно длинные вычисления в Excel. Я хотел бы отвлечь мое внимание от экрана и сделать что-то на моем столе, но будьте предупреждены, когда вычисление закончится.

Есть идеи?

3 ответа3

20

ОК, кое-что попробовать (инструкции предполагают наличие Excel 2007 или новее):

  • Откройте свою рабочую книгу.
  • Сохраните его как SS с поддержкой макросов (.XLSM).
  • Нажмите Alt-F11, чтобы открыть окно кодирования VBA.
  • Щелкните правой кнопкой мыши VBAProject (yourbook.xlsm) и выберите "Вставка" → "Модуль".
  • Откройте вновь созданный "Module1".
  • В модуле вставьте этот фрагмент:

    Sub Auto_Open()
        Application.OnKey "{F9}", "F9Handler"
    End Sub
    

    Это приведет к переназначению клавиши F9 при каждом открытии SS. Когда вы нажимаете F9, он запускает F9Handler вместо обычного вычисления.

  • В модуле вставьте этот фрагмент:

    Sub F9Handler()
        Application.Calculate
        Beep
    End Sub
    

    Это то, что теперь будет работать, когда вы нажмете F9. Первая строка запускает Application.Calculate (что обычно выполняет F9), а затем гудки.

  • Сбереги все.

  • Закройте Excel.
  • (Re) Откройте XLSM, который вы сделали.
  • Прибыль. :)

Примечание. Вероятно, вам придется включить макросы и / или сделать документ "доверенным", чтобы обеспечить выполнение макроса (-ов) должным образом.

Больше информации:

5

Как и другие упомянутые, используйте команду beep в Visual Basic (VB):

Function beepNow()
Beep 
End Function

Чтобы получить VB-кодирование, вам нужно, чтобы Developer tab доступна (см .: Отображение вкладки «Разработчик»)

Поэтому, когда у вас есть изменение в ячейке или состоянии, оно подаст звуковой сигнал. Пример макроса для вызова кода VBS выше: =IF(C2<>C3,beepNow(),"")

1

В качестве альтернативы размещению модуля в ss, вы можете поместить его в свой Personal.xlsb. Это позволит вам иметь "звуковой сигнал", доступный для любой сс. Чтобы запустить его, либо измените панель быстрого доступа, либо вставьте кнопку / форму, чтобы щелкнуть мышью по ss и назначить ей макрос.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .