Страницы: 1
RSS
Как отключить появление msgbox прописанных в коде
 
Уважаемы знатоки, добрый день!
Имеется проблема до абсурдности не логичная, но требующая решения.

Задача следующая:
Необходимо написать макрос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
Заранее огромное спасибо!
 
а если просто удалить эту строку из кода?
 
К сожалению изменять книга2 я не могу
 
Тогда, вместо вызова одного макроса All.all_in_one, вызывайте поочередно те три, которые он запускает.
 
Гениально!!!
Спасибо!
Страницы: 1
Читают тему
Наверх