Мой код копирует данные из разных рабочих книг в другие рабочие книги. Он просматривает 12 рабочих книг, в которые копируются данные, и каждая из этих 12 рабочих книг открывает (и закрывает) 6 файлов, из которых получает данные.
Первый шаг - я показываю пользователю пользовательскую форму, где он может выбрать год и квартал. Сам код работает, когда:
Я опускаю форму пользователя и ввожу дату (= переменные qVar
, yVar
и fullDate
) непосредственно внутри кода.
Я оставляю в пользовательской форме, но уменьшаю количество рабочих книг с 12 до 7 или около того.
Если я использую пользовательскую форму со всеми 12 книгами, я получаю
"Ошибка автоматизации. Произошло исключение."
и Excel выключается. Рассматриваемая пользовательская форма состоит из комбинированного списка, рамки, в которой находятся 4 кнопки выбора и две кнопки управления.
Код для пользовательской формы (qVar
, yVar
и fullDate
являются глобальными переменными):
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub cmdOk_Click()
Dim QuartalStr As String
Dim oControl As Control
If cboJahr.Value = "" Then
MsgBox "Select year"
Exit Sub
End If
For Each oControl In frmQuartalsauswahl.fraQuartale.Controls
If oControl.Value = True Then
qVar = oControl.Caption
End If
Next oControl
yVar = CStr(cboJahr.Value)
Select Case qVar
Case "Q1"
fullDate = yVar & ".03.31"
Case "Q2"
fullDate = yVar & ".06.30"
Case "Q3"
fullDate = yVar & ".09.30"
Case "Q4"
fullDate = yVar & ".12.31"
End Select
Unload Me
Call QuarterlyReport.WithUserForm
End Sub
Private Sub UserForm_Initialize()
Dim yearsArray() As Integer
Dim startyear As Integer
Dim i As Integer
startyear = 2017
i = 0
Do While startyear <= Year(Date)
ReDim Preserve yearsArray(i)
yearsArray(i) = startyear
startyear = startyear + 1
i = i + 1
Loop
cboJahr.List = yearsArray
End Sub
Кто-нибудь имеет представление о том, что мне следует делать или что я должен искать?
edit: Хорошо, теперь я получил новую ошибку: Excel вылетает с классическим сообщением об ошибке: «Microsoft Excel перестал работать» . Однажды Excel восстановил обновленные рабочие книги, что говорит мне: в тот раз это произошло для 10-й из 12 рабочих книг, после того как данные из 5 из 6 исходных файлов были скопированы. Однако это тот же код, что и для других рабочих книг. Во всяком случае, с тех пор, как Excel не восстанавливает ничего, кроме исходных файлов - либо это проблема с Excel, либо это означает, что мой код падает без изменения файлов. Без пользовательской формы код по-прежнему работает без проблем.