Уважаемы знатоки, добрый день!
Имеется проблема до абсурдности не логичная, но требующая решения.
Задача следующая:
Необходимо написать макрос1 в книге1, который бы по очереди открывал все книги2 в папке и выполнял в них макрос2, содержащийся в каждой книге2.
Проблема состоит в том, что код в макрос2 заканчивается на вывод msgbox считающий время выполнения макроса:
Код |
---|
MsgBox "данные обработаны за " & Timer - t & " сек.", vbInformation |
и каждый раз нужно жать "ok". Что крайне нежелательно, т.к. книг2 в папке может быть более 100.
Так вот вопрос в том как отключить/избежать появления msgbox в макрос2?
Заранее благодарен.
PS: для наглядности сбрасываю пример макроса1 в книге1
Код |
---|
Sub opening()
Dim sFolder As String, sFiles As String
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = False Then Exit Sub
sFolder = .SelectedItems(1)
End With
sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
sFiles = Dir(sFolder & "*.xls*")
Do While sFiles <> ""
'Открытие книги
Workbooks.Open sFolder & sFiles
'действие с файлом
Application.Run "'" & sFiles & "'!All.all_in_one"
ActiveWorkbook.Close True
sFiles = Dir
Loop
End Sub
|
и макрос2 в книге2
Код |
---|
Public CheckForPlan As Boolean
Sub all_in_one()
t = Timer
Call оргструктура
Call продажи
Call инвестиции
MsgBox "данные обработаны за " & Round(Timer - t, 2) & " сек.", vbInformation
End Sub
|
Заранее огромное спасибо!