Когда мой код запускается и достигает строки application.calculation = xlcalculationmanual
, возникает ошибка компиляции о том, что метод или элемент данных не найдены
У меня есть макрос vba, который просматривает таблицу значений Excel иизвлекает эти данные для заполнения полей слияния в слове doc.
Макрос выполняется с помощью нажатия кнопки команды.Мне потребовалась помощь для ускорения кода, выполнение которого занимает более 15 секунд.
Я добавил несколько строк для ускорения кода (см. Ниже), но когда он достигает application.calculation = xlcalculationmanual
, возникает ошибка компиляции: методили элемент данных не найден
Я посмотрел это, и кто-то упомянул использование раннего связывания.Поэтому я перешел к справочникам по инструментам и поставил галочку для библиотеки MS Excel 16.0.Проблема с calculationmanual
осталась.
Странно запускать код вручную, а не через командную кнопку, намного быстрее.Есть ли альтернативный способ ускорить мой код слияния без инструкции по вычислению или это проблема с командными кнопками?
Private Sub CommandButton1_Click()
'speed up of code
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Activesheet.DisplayPageBreaks = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
'end of speed up of code
Dim numRecord As Integer
Dim myDCR As String
myDCR = InputBox("Enter DCR:")
Set dsMain = ActiveDocument.MailMerge.DataSource
With ActiveDocument.MailMerge
.DataSource.ActiveRecord = wdFirstRecord
End With
If dsMain.FindRecord(FindText:=myDCR, Field:="DCR") = True Then
numRecord = dsMain.ActiveRecord
End If
Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Activesheet.DisplayPageBreaks = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
End Sub
Я ожидаю, что код запустится и получит данные изпревзойти и заполнить слово doc менее чем за 3 секунды.