Vba excel выполнение в фоне

Время прочтения: 4 мин.

  • в
    каких случаях важно запускать макрос в «фоновом» режиме и почему необходимо
    реагировать на действия пользователя;
  • пример
    реализации работы «фонового» приложения (проверено на версиях c 2007);
  • актуализация
    программного кода в приведенном примере к версиям 2013-2016.

Зачем скрывать приложение с экрана?

Приложение с
выполняющимся макросом имеет смысл переводить в «фоновый» режим, если
предполагается, что пользователь продолжит работать за компьютером, при этом
без необходимости контролировать работу макроса: скрытое с экрана приложение не
вызовет раздражение пользователя «непрорисованной» экранной областью, не
потребует ресурсов для такой прорисовки, не будет подвержено воздействию
пользователя на формирующуюся книгу (например, активацией объектов книги, использованием
буфера памяти приложения).

Как
реализовать?

Объектная модель Excel позволяет работать с несколькими книгами
(объектами Workbook)
в одном приложении (в объекте Application).
А значит, приложение, скрытое с экрана для выполнения макроса, может быть
вызвано операционной системой для попытки открыть в нем указанный пользователем
файл. В результате, попытка открытия файла либо будет безрезультатной, либо
пользователю придется ожидать окончания выполнения скрытого макроса для
возможности приступить к работе с файлом.

  1. Чтобы скрытое приложение могло реагировать должным образом на загрузку пользовательского файла, необходимо указать порядок действий в событиях приложения (события объекта Application) – реализую их в отдельном классе.
ExAppClass (class module)
'Переменная уровня приложения
Private WithEvents ExApp As Excel.Application


'Указывает объект для управления
Public Function SetExApp(ByVal NewExApp As Excel.Application) As Excel.Application
    Set SetExApp = Nothing
    
    If (NewExApp Is Nothing) Then
        Exit Function
    End If
    
    If (Not ExApp Is Nothing) Then
        Call ToNothingApp
    End If
    
    Set ExApp = NewExApp
    Set SetExApp = ExApp
End Function

'Возвращает ссылку на управляемый объект
Public Function GetExApp() As Excel.Application
    Set GetExApp = ExApp
End Function


'Заново открывает пользовательскую книгу в новом приложении
Private Sub ExApp_WorkbookOpen(ByVal Wb As Workbook)
    Dim TransApp As Excel.Application
    Dim TransWbName As String
    
    'Запоминаю
    TransWbName = Wb.FullName
    Wb.Close False
    Set Wb = Nothing
    
    'Открываю заново
    Set TransApp = New Excel.Application
    TransApp.Visible = True
    TransApp.Workbooks.Open TransWbName
    Set TransApp = Nothing
End Sub


'Заново создает пустую книгу в отдельном приложении
Private Sub ExApp_NewWorkbook(ByVal Wb As Workbook)
    'Реализация аналогична процедуре ExApp_WorkbookOpen()
End Sub


'Заново открывает пользовательскую книгу в новом приложении с режимом просмотра
'(реализация процедуры требуется при наличие данного события в версии Excel)
Private Sub ExApp_ProtectedViewWindowOpen(ByVal Pvw As ProtectedViewWindow)
    Dim TransApp As Excel.Application
    Dim TransWbName As String
    
    'Запоминаю
    TransWbName = Pvw.Workbook.FullName
    Pvw.Workbook.Close False
    Pvw.Close
    Set Pvw = Nothing
    
    'Открываю заново
    Set TransApp = New Excel.Application
    TransApp.Visible = True
    TransApp.ProtectedViewWindows.Open TransWbName
    Set TransApp = Nothing
End Sub


'Уничтожает ссылку на приложение
Public Sub ToNothingApp()
    If (Not ExApp Is Nothing) Then
        ExApp.Visible = True
        Set ExApp = Nothing
    End If
End Sub


'Уничтожает объект, управляющий приложением
Private Sub Class_Terminate()
    Call ToNothingApp
End Sub

Стоит отметить, что в
подобных задачах часто реализуются возможности для управления «своим» или
«чужим» запущенным приложением Excel,
определяется количество допустимых для обработки книг, список допустимых к
открытию книг.

  1. Для
    скрытия приложения с экрана и запуска в нем требуемого функционала, добавляю
    программный модуль.
ExecModule (module)
'"Захватывает" приложение и запускает искомый макрос
Public Sub Exec()
    Dim clsProgApp As New ExAppClass
    
    With clsProgApp
        'Начинаю управлять «своим» приложением
        Call .SetExApp(NewExApp:=ThisWorkbook.Application)
        'Скрываю приложение
        .GetExApp.WindowState = xlMinimized
        .GetExApp.Visible = False
        'Запускаю макрос с искомым функционалом
        Call ResultRun(.GetExApp)
        'Отображаю приложение с искомым результатом
        .GetExApp.Visible = True
        .GetExApp.WindowState = xlNormal
        
        'Перестаю управлять объектом Application
        Call .ToNothingApp
    End With
    
    Set clsProgApp = Nothing
End Sub


Private Function ResultRun(ByVal ManagerExApp As Excel.Application) As Boolean
    'Здесь реализуется какой-либо искомый функционал...
    
    'Продолжительный по времени функционал
    'должен периодически вызывать функцию DoEvents
    'для реагирования процесса на действия пользователя
End Function

Что
актуализировать?

Приложение Excel, начиная с версии 2013, позволяет
пользователю работать с книгами в отдельных окнах (реализуя Single Document Interface). При этом, книги
фактически, как и в прежних версиях, могут быть загружены в коллекцию одного
приложения. Потому приведенный пример программного кода в целом остается
работоспособным за исключением обнаруженных на практике «специфического поведения»
приложения.

При попытке закрыть вызванный пользователем файл, происходит обращение к скрытому приложению, в котором он в данный момент загружен. Важно временно отобразить скрытое приложение, перед закрытием файла. Иначе в памяти остаются «висеть» ссылки на объекты закрываемого файла. Приведу пример исправления события.

ExAppClass (class module)
'(Для интерфейса SDI) заново открывает пользовательскую книгу в новом приложении
Private Sub ExApp_WorkbookOpen(ByVal Wb As Workbook)
    Dim TransApp As Excel.Application
    Dim TransWbName As String
    
    Dim AppVersion As Integer
    Dim SDIversion As Integer: SDIversion = 15
    
    With ExApp
        AppVersion = Fix(Replace(.Version, ".", ","))
        If (AppVersion >= SDIversion) Then
            'Временно отображаю скрытое приложение
            .Visible = True
        End If
        
        'Запоминаю
        TransWbName = Wb.FullName
        Wb.Close False
        Set Wb = Nothing
        
        If (AppVersion >= SDIversion) Then
            'Скрываю приложение
            .Visible = False
        End If
    End With
    
    'Открываю заново
    Set TransApp = New Excel.Application
    TransApp.Visible = True
    TransApp.Workbooks.Open TransWbName
    Set TransApp = Nothing
End Sub

Use the Application.OnTime method to schedule code that will run in one minute.

Your code will look something like this (Untested):

Sub CreateNewSchedule()
    Application.OnTime EarliestTime:=DateAdd("n", 1, Now), Procedure:="macro_name", Schedule:=True
End Sub

Sub macro_name()

    If Value > 10 Then
        SendEmail
    Else
        CreateNewSchedule
    End If

End Sub

You might want to store the time of the next schedule in a global variable so that the Workbook_BeforeClose event can cancel the next schedule. Otherwise Excel will re-open the workbook.

Public nextScheduledTime As Date

Sub CreateNewSchedule()
    nextScheduledTime  = DateAdd("n", 1, Now)
    Application.OnTime EarliestTime:=nextScheduledTime , Procedure:="macro_name", Schedule:=True
End Sub

Sub macro_name()

    If Value > 10 Then
        SendEmail
    Else
        CreateNewSchedule
    End If

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
    Application.OnTime EarliestTime:=nextScheduledTime, Procedure:="macro_name", Schedule:=False
End Sub

You can then continue to use Excel between the scheduled times.

Оптимизировал как мог.  

  Вот он макрос:  

  Sub Calculating()  

  ‘  
‘ Calculating Макрос  
‘  

  ‘  
   Application.ScreenUpdating = False  
   Application.Calculation = xlCalculationManual  

         Dim var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, counter, i As Integer  

         counter = 0  

         For var1 = 2 To 6 Step 1  
   For var2 = 2 To 6 Step 1  
   For var3 = 2 To 6 Step 1  
   For var4 = 2 To 6 Step 1  
   For var5 = 2 To 6 Step 1  
   For var6 = 2 To 6 Step 1  
   For var7 = 2 To 6 Step 1  
   For var8 = 2 To 6 Step 1  
   For var9 = 2 To 6 Step 1  
   For var10 = 2 To 6 Step 1  

             Windows(«VALUES»).Activate  
   Worksheets(«Лист1»).Activate  
   Range(«DS2»).Select  

         Selection.FormulaR1C1 = var1  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var2  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var3  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var4  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var5  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var6  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var7  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var8  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var9  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var10  

  ‘ и вот тут уходит наверное полсекунды-секунда (большой объем пересчитывает каждый круг):  
   Application.Calculate  

       Windows(«_1001_»).Activate  
   Worksheets(«Лист1»).Activate  

    ‘ и на этом цикле уходит время около секунды, вот и получается две секунды:  
   For i = -20 To 20 Step 1  
   Range(«P17»).Select  
   ActiveCell.FormulaR1C1 = i  

     Worksheets(«Лист1»).UsedRange.Columns(«N:X»).Calculate  

     Range(«U261»).Select  
   Selection.Copy  
   Range(«X23»).Select  
   ActiveCell.Offset(rowoffset:=i + 20, columnoffset:=0).Activate  
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _  
       :=False, Transpose:=False  
   Application.CutCopyMode = False  

         Next i  

         Worksheets(«Лист1»).Calculate  
   Range(«X21:X22»).Select  
   Selection.Copy  
   Worksheets(«Sorted»).Activate  
   Range(«L1»).Select  
   ActiveCell.Offset(rowoffset:=counter, columnoffset:=0).Activate  
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _  
       :=False, Transpose:=True  
   Application.CutCopyMode = False  

         Range(«A1»).Select  
   ActiveCell.Offset(rowoffset:=counter, columnoffset:=0).Activate  

         Selection.FormulaR1C1 = var1  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var2  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var3  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var4  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var5  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var6  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var7  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var8  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var9  
   ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Activate  
   Selection.FormulaR1C1 = var10  

     Range(«O1»).Select  
   ActiveCell.Offset(rowoffset:=counter, columnoffset:=0).Activate  
   Selection.FormulaR1C1 = MyTime  

     counter = counter + 1  

               Next var10  
   Next var9  
   Next var8  
   Next var7  
   Next var6  
   Next var5  
   Next var4  
   Next var3  
   Next var2  
   Next var1  

           Application.Calculate  
Application.Calculation = xlCalculationAutomatic  
Application.ScreenUpdating = True  

        End Sub

Фоновый режим при выполнении макроса

Stepler

Дата: Четверг, 05.06.2014, 10:13 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
20% ±


Excel 2007

7, 2010

Если при выполнении кодом прописываю типа….

Код

ActiveWorkbook.Application.Visible = False

Потом идет выполнение многочасового цикла.
Хочется периодически знать «как там дела», например в виде сообщения MsgBox, но не проходит…
Надо делать выход из фонового режима, потом сообщение, потом опять фоновый….
По другому как-то возможно?
Спасибо


P.S.Чтобы наступила смерть — необходима жизненная сила !!!

 

Ответить

_Boroda_

Дата: Четверг, 05.06.2014, 10:29 |
Сообщение № 2

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

А если скрывать только текущее окно, а не весь апликейшн?
[vba]

Код

ActiveWindow.Visible = False

[/vba]


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Stepler

Дата: Четверг, 05.06.2014, 10:52 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
20% ±


Excel 2007

Спасибо за идею….
О простом как-то не подумал… :haha:


P.S.Чтобы наступила смерть — необходима жизненная сила !!!

 

Ответить

Stepler

Дата: Четверг, 05.06.2014, 10:59 |
Сообщение № 4

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
20% ±


Excel 2007

Нееееееее, не пойдет = Эксель-то (пустой) висит… :'(


P.S.Чтобы наступила смерть — необходима жизненная сила !!!

 

Ответить

Hugo

Дата: Четверг, 05.06.2014, 11:57 |
Сообщение № 5

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Я чтоб «периодически знать «как там дела»» вывожу информацию в статусбар — именно можно в это висящее пустое окно.
Вообще что за многочасовые циклы? Нельзя ли как-нибудь пооптимизировать, чтоб за пару минут делалось?


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

Stepler

Дата: Четверг, 05.06.2014, 12:30 |
Сообщение № 6

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
20% ±


Excel 2007

типа таймера — может я слишком по-деревянному решаю задачу…
Просто у меня есть необходимость чтоб ПК выключился в определенное время, а время берется из Экселя…
А периодически надо смотреть енто конечное время…


P.S.Чтобы наступила смерть — необходима жизненная сила !!!

Сообщение отредактировал SteplerЧетверг, 05.06.2014, 12:33

 

Ответить

Hugo

Дата: Четверг, 05.06.2014, 12:40 |
Сообщение № 7

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Думаю можно стандартным шедулером винды (или что там у Вас) запускать скрипт (периодически), который будет смотреть время где угодно (удобнее в текстовом файле например), и действовать.
Вот тут есть примеры скриптов: http://www.vbsedit.com/scripts/desktop/state/default.asp
Ну или макрос экселя выполнять по application.ontime — но тогда этот аппликейшен/эксель нужно держать включенным.


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

Stepler

Дата: Четверг, 05.06.2014, 13:11 |
Сообщение № 8

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
20% ±


Excel 2007

запускать скрипт (периодически),

у меня прописан в процедуре

но тогда этот аппликейшен/эксель нужно держать включенным

не пойдет — мешать будет процедуре и надо, чтоб не видно было что работает Эксель…


P.S.Чтобы наступила смерть — необходима жизненная сила !!!

 

Ответить

Hugo

Дата: Четверг, 05.06.2014, 13:35 |
Сообщение № 9

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Какой процедуре будет мешать включенный эксель? А сейчас не мешает?
«надо, чтоб не видно было что работает Эксель» — так я не говорил, что его нужно держать видимым.
Вообще если мы тут просто поговорить — то давайте поговорим. А если решаем задачу — то давайте саму задачу :)


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

Stepler

Дата: Четверг, 05.06.2014, 14:05 |
Сообщение № 10

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
20% ±


Excel 2007

в двух словах:
В книге обрабатываются данные (закрытые), собираемые от разных подразделений «Конторы». Комп общественный и я не не хочу, чтоб каждый мог увидеть/помешать ентой работе. Причем выключиться ПК должен при выполнении некоторых условий обработки через определенное время, ВЫКЛЮЧИТЬСЯ и закрыть все приложения — войти никто кроме меня не сможет, а данные до выключения ПК я потом просмотреть смогу. Больше, извините, ничего сказать не имею права. Через несколько дней ентот вопрос будет решен административно : допмашина и связи с ней…
По поводу «application.ontime» я говорил, что написал что=то типа ентого…


P.S.Чтобы наступила смерть — необходима жизненная сила !!!

 

Ответить

Alex_ST

Дата: Четверг, 05.06.2014, 14:18 |
Сообщение № 11

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

Я только не пойму, зачем Вы так упорно держитесь за Excel , выступающий в роли планировщика задач?
Неужели нельзя шедулером форточек с нужной периодичностью собирать данные, а обработку делать потом, когда Вы откроете Excel?
Что там у Вас периодически изменяют отделы конторы? Меня не интересует, естественно, что конкретно.
Главное — принцип ввода в отделах, сбора и хранения хранения данных на центральном компе и последующей обработки собранного.
Может быть достаточно в файлах, ведущихся «на дальних концах», процедурки вместе с открываемыми файлами запускать, которые нужные Вам данные в одно место отправят. А Вы уже оттуда всё накопленное возьмёте и обработаете?

Сообщение отредактировал Alex_STЧетверг, 05.06.2014, 21:00

 

Ответить

Hugo

Дата: Четверг, 05.06.2014, 14:32 |
Сообщение № 12

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Кстати я в шедулере ХР не нашёл возможности задать периодичность менее 1 дня… Удивительно даже.
Но можно скрипт запускать при перезагрузке, а там уж в скрипте прописать периодичность срабатывания проверки.


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

Stepler

Дата: Четверг, 05.06.2014, 14:38 |
Сообщение № 13

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
20% ±


Excel 2007


P.S.Чтобы наступила смерть — необходима жизненная сила !!!

Сообщение отредактировал SteplerЧетверг, 05.06.2014, 14:44

 

Ответить

Запуск макросов в фоновом режиме

На чтение 2 мин. Просмотров 61 Опубликовано 14.05.2021

Когда вы запускаете макрос в Excel, программа уделяет все свое внимание завершению макроса. (Звучит почти антропоморфно, не так ли?) Это означает, что, если макрос выполняет достаточно тяжелую обработку ваших данных, может показаться, что ваша система “зависла” во время обработки макроса.

Однако будьте уверены, что обработка макросов влияет только на Excel. Вы можете открыть другое приложение и работать в нем, пока фрагменты макроса будут работать в Excel в фоновом режиме. Конечно, внимание, уделяемое макросу вашей системой, вероятно, замедлит реакцию другой программы, но это зависит от версии Windows, которую вы используете в своей системе. Причина? Совместное использование ресурсов требует процесса, известного как многозадачности. Различные версии Windows по-разному обрабатывают многозадачность.

Вы можете задаться вопросом, как вы можете выполнять другую работу в Excel, когда программа занята выполнением макроса. Легко – просто откройте еще один экземпляр Excel (снова запустите его из меню «Пуск») и выполните другую работу. Все, что вам нужно сделать, это убедиться, что вы не пытаетесь работать с той же книгой (или книгами), которая используется макросами в вашем первом экземпляре Excel.

Другой способ сделать немного работы – это немного изменить ваш макрос. Скорее всего, если ваш макрос выполняется в течение длительного периода, это связано с тем, что он выполняет цикл определенного типа. Добавив в цикл команду DoEvents, макрос временно приостановит выполнение и вернет управление процессам пользователя. Итак, если вы нажали клавишу, щелкнули мышью или начали что-то печатать, DoEvents заметит это и выполнит все задачи, необходимые для выполнения того, что вы хотите. Когда весь пользовательский ввод обработан, макрос благополучно продолжает свой путь.

Добавление DoEvents несколько замедляет ваш макрос, но позволяет вам немного продолжить работу. (Поймите, что Excel по-прежнему будет работать медленно; ваш макрос требует ресурсов для запуска.) Добавление DoEvents также может предоставить возможность выйти из макроса (используя Ctrl + Break ) контролируемым образом. .

Однако помните, что вы можете выяснить, что лучше всего работает в вашей ситуации, только путем тестирования (и дополнительного тестирования).

Andy Mist

1

Выполнение макроса в «фоновом» режиме

11.08.2010, 09:52. Показов 10112. Ответов 2


Студворк — интернет-сервис помощи студентам

Подскажите как заставить макрос выполняться в так сказать фоновом режиме, т.е. без этого безумного мелькания строк и рабочих листов?

14 / 14 / 2

Регистрация: 23.03.2010

Сообщений: 635

11.08.2010, 13:18

2

application.screenupdating = false


application.screenupdating = true'(в каких-то случаях — не всегда —
без обратного переключения не обойтись)



0



0 / 0 / 0

Регистрация: 19.04.2010

Сообщений: 8

07.09.2010, 14:03

3

Что-то не очень то работают эти команды
Окно в трей не прячется, а уж темболее из него и не появляется.
Может есть чтото получше ???



0



А Вы и запускайте и прирывайте макрос из одно й и той же формы.
Более того, можно это сделать одной и той же кнопкой.

Многопоточность в VBA возможна, но только средствами WinAPI.
Т.е. CreateTread и прочие функции этой группы. Все они находятся в kernel32.dll.

Если с WinAPI и многопоточностью не знакомы, то проще сделать как я советовал в начале.
Вот пример:
Добавьте форму, на нее кнопку с надписью «Start».

Вот обработчик нажатия кнопки.

Код: Выделить всё

Private Sub CommandButton1_Click()
  If CommandButton1.Caption = "Start" Then
    CommandButton1.Caption = "Stop"
    While CommandButton1.Caption = "Stop"
      [a1] = Rnd
      DoEvents
    Wend
  Else
    CommandButton1.Caption = "Start"
  End If
End Sub

Пока повторно не нажмут кнопку в ячейку А1 постоянно пишется случайное число.
Только тут еще надо обработать событие QueryClose у формы. Тут как хотите, либо

(тогда все будет останавливаться при закрытии формы)

либо

(тогда форму нельзя будетт закрыть пока явно не нажмут Stop)

Как открыть файл в скрытом режиме для пользователя?

​Смотрите также​​ начинаю (пусть она​
​ сохраняет в туже​ ComboBox3.ListIndex = 0​ держать открытым client.xlsm),​ Нужно чтобы рабочая​ тоже производиться в​ у вас книга​ Filename» подчеркнута:​ файл​)​Margot​
​ дело​ — обязательно objXL.Quit​ заработало. Нужен только​ Len(ActiveWorkbook.name) — 5)​ «75» ‘ширина столбцов​Uchimata​ называется Книга1.xlsm).​ папку) книгу с​ Private Sub CommandButton72_Click()​ то все связи​ постоянно была активна​ фоновом режиме в​

​ закрывается без сохранения,​​Sub update()​Ну и ответы​И что значит​: Здравствуйте,​ActiveWorkbook.Close SaveChanges:=True​ ‘убираем указатель на​Set objXL = Nothing​

​ ‘имя минус .XLS​​ .ListRows = 10​

CyberForum.ru

Как активировать файл excel из фонового режима | MS Word

​: Доброе утро!​​Я работаю с​​ названием​​ Dim fName As​ обновляются.​
​webley​ этой книге. Но​ это правильно?​With Application​ на Ваши вопросы​ ? -​Можете ли вы​
​Имя = Dir​ excel Set objXL​Private Sub CommandButton2_Click()​ — 4 символа​ ‘значений в раскрытом​
​Хотел бы узнать​ новой книгой, но​Date & «.xlsx»,​
​ Variant fName =​ПРОБЛЕМА:​: а расчеты в​ в этом случае​
​@Nik​.ScreenUpdating = False​
​ -​Margot​ пояснить поподробнее код​Loop​ = Nothing ‘убираем​ Dim sFilePath, objXL,​этот вариант я​ списке End With​ как открыть файл​ в ней нет​. Потом в​ «C:ПечатьДокументаxlsmDBoss.xlsm» Set fName​Но, если нет​ макрос перенести не​ расчет не происходит.​: Ну не знаю…​.DisplayAlerts = False​1. нужно присвоить​: Имеется ввиду что​ данный выше?​==============================================================​ файл из фонового​ Secur sFilePath =​ пробовал, выводит сообщение​

​ Me.ComboBox3.List = wс.Worksheets(«Руководство»).Range(«СписокФИОВсе»).Value​​ в скрытом режиме​ макросов, и потому​ этой книге макросы​ = CreateObject(«excel.application») ‘Application.GetOpenFilename​

​ открытого приложения Excel,​​ вариант?​​Валерий​
​ Если автоматическое обновление​macrosMAJ = «C:UsersE500892DesktopFichier​ переменной «папка» значение​ нужно писать на​

​Sub update()​​С доработкой вероятно​ режима End Sub​ «C:ПечатьДокументаxlsmРедактированиеДанных.xlsm» ‘ActiveDocument.Path &​ на сохранить или​
​ ComboBox3.ListIndex = 0​ от пользователя,необходимо открыть​ мне нужна первая​

​ выполняют некоторые действия​​ fName = Left(ActiveWorkbook.name,​
​ то при попытке​Валерий​: Так как имена​ включено, то попробуйте​ de SUIVIMBAV BarèmesmacrosMAJ»​ полного пути к​ месте слов «Папка»​

​With Application ‘операции​​ так:​
​ Private Sub CommandButton31_Click()​ ‘objXL.WorkBooks.Close ‘objXL.Quit Set​ нет и все​ Private Sub CommandButton72_Click()​ и закрыть несколько​ книга.​ — какие, не​
​ Len(ActiveWorkbook.name) — 5)​ обновления связей PowerPoint​
​: Не работает​

​ файлов кодируются, надо​​ ещё так:​origine = Dir(macrosMAJ​ той папке, где​ и «Имя»:​ с приложением/отключаем для​Code200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub update()​ CreateObject(«wscript.shell»).Run «C:ПечатьДокументаxlsmDBoss.xlsm» Unload​

​ objXL = Nothing​​ равно открывается в​ Dim fName As​ файлов,но очень не​RAN​ суть важно.​
​ ‘имя минус .XLS​ пытается открыть «фоново»​Валерий​ пояснить:​Sub new_calculation()​ & «*.xls*»)​

​ лежит файл. Примерно​​Я написала этот​

​ повышения скорости работы​​With Application’операции с​
​ Me End SubВсе,​ Set objXL =​ режиме чтения.​ Variant fName =​

​ нравится что они​​: В таком разе​Вопрос, как мою​ — 4 символа​

​ client.xlsm (с поддержкой​​: Не вариант -​post_179806.xls — это​Set objExcel =​

​Do While origine​​ вот так​ код таким образом,что​ макроса​ приложением/отключаем для повышения​ Всем УДАЧИ!​ CreateObject(«Excel.Application») ‘ получаем​Аватар-С​ «C:ПечатьДокументаxlsmDBoss.xlsm» Set fName​ появляются на панели​ тебе нужна надстройка.​ книгу открыть в​ Workbooks(fName).Activate End Sub​ макроса) и валится​ очень много обрабатываемых​ main.xls​ New Excel.Application​

​ <> «»​КодПапка = «c:UsersМояПрочееДля_Excel»​ подставила вместо слова​.ScreenUpdating = False​ скорости работы макроса​ELLE​​ указатель на Application​
​: Писал же!​ = CreateObject(«excel.application») ‘Application.GetOpenFilename​​ и исчезают.Можно ли​​ Она при запуске​ фоновом режиме, и​​Вернуться к обсуждению:​​ в ошибку:​​ даных а экселевский​​post_179808.xls — это​​Set wbhidden =​​With Workbooks.Open Filename:=macrosMAJ​2. КодИмя =​ «папка» имя папки,где​ ‘обновление экрана​​.ScreenUpdating = False’обновление​​: Доброго времени суток!​
​ objXL.Visible = True​
​_shark​
​ fName = Left(ActiveWorkbook.name,​ это избежать??​​ невидима, но макросы​
​ по закрытии книги,​Как активировать файл​»Во время последнего​ движок существенно быстрее​ calculate.xls​ objExcel.Workbooks.Open(«D:calculate.xlsb»)​ & origine, UpdateLinks:=True​ Dir(Папка & «*.xls*»)​ находятся файлы, которые​.DisplayAlerts = False​ экрана​Помогите пожалуйста!!!!​ ‘ делаем окно​: Уже убрал.​ Len(ActiveWorkbook.name) — 5)​Sub Обновление() Application.AskToUpdateLinks​ в ней работают.​​ с которой она​
​ excel из фонового​
​ открытия документа «Client.xlsm»​ чем рукописный макрос.​
​webley​​wbhidden.Sheets(«RES_1»).Cells.Dirty​.Close SaveChanges:=True​ «Имя» — это​ нужно обновить (macrosMAJ)​
​ ‘вывод системных сообщений​.DisplayAlerts = False’вывод​Имеется группа экселевских​ Excel видимым Set​Теперь вообще не​
​ ‘имя минус .XLS​ = False Application.DisplayAlerts​
​ Создается либо сохранением​​ работает (и только​​ режима | MS​ Произошла серьезная ошибка.​
​@Nik​
​: Я думаю, дело​wbhidden.Close False​End With​ переменная. С тем​ и вместо «Имя»​Папка (имеется ввиду​ системных сообщений​ файлов (около 400),​
​ wс = objXL.WorkBooks.Open(sFilePath)​ чего не происходит,​
​ — 4 символа​ = False Workbooks.Open​ как надстройка (Книга1.xlam),​ этой книги) сохранить​ Word​ Продолжить его открытие?»​: А если сделать​ в том, что​Set objExcel =​origine = Dir​ же успехом можно​ — имя файла​ что надо прописать​Папка = «полный​ данные из которых​ End SubЯ ведь​ не ругается не​ Workbooks(fName).Activate End Sub​ «…Файл.xls» ActiveWorkbook.RunAutoMacros xlAutoOpen​ либо поставить свойство​ и закрыть обе?​Следующий ответ​Проблемы нет в​ так:​ в когда открывается​ Nothing​Loop​ было назвать «Imya».​ в котором изменяются​

CyberForum.ru

!!!!! ОБНОВЛЕНИЕ ФАЙЛОВ БЕЗ ОТКРЫТИЯ!!!!!

​ имя папки ?)=​​ путь папки»​
​ сводятся в отдельном​
​ это и прислал​ открывает.​Аватар-С​ ActiveWorkbook.Save ActiveWorkbook.Close Workbooks.Open​ IsAddin (в модуле​
​зы. Только мне​dimanoid​ случае фонового открытия​Sub new_calculation()​ книга в другом​End Sub​.ScreenUpdating = True​
​ Кстати, как и​ данные (origine):​ «полный путь папки»​’———— Excel-файлы в​ файле.​
​ в архиве См​Аватар-С​: Вот смотри верхняя​ «…Файл2.xlsx» ActiveWorkbook.RunAutoMacros xlAutoOpen​ книги) True (Книга1.xlsm)​

​ не надо направление,​​: ДАНО:​ обычного xlsx-файла (БЕЗ​Workbooks.Open («D:calculate.xls»)​ экземпляре Excel, то​Или попробуйте вставить​.DisplayAlerts = True​

​ «папка». Просто автор​​Sub update()​’———— Excel-файлы в​ этой папке ——————​
​Данные в каждом​ #14​: Приложил бы файл​

​ строка fName -​​ ActiveWorkbook.Save ActiveWorkbook.Close Application.AskToUpdateLinks​Но если просто​ пальцем укажите, если​
​MS Office 2010​
​ макросов) Предполагаю, что​Windows("calculate.xls").Visible = False​ связи между ячейками​
​Application.Calculation = xlCalculationManual​End With​
​ макроса посчитал, что​With Application​
​ этой папке ------------------​Имя = Dir(Папка​
​ файле зависят от​_shark и toiai​
​ пример, легче было​ объект, нижняя -​
​ = False Application.DisplayAlerts​ убрать с глаз​ это действие возможно​
​client.xlsm (с поддержкой​
​ проблема с фоновым​
​Workbooks("calculate.xls").Close False​
​ просто нет. А​

​Application.Calculation = xlCalculationAutomatic​End Sub​
​ так будет понятнее​
​.ScreenUpdating = False​Имя (о каком​ & «*.xls*»)​
​ даты, которая забивается​Спасибо за участие!​
​ осознать проблему.​ строка определись?​
​ = False Workbooks.Open​ долой — тогда​
​Гость​ макроса)​
​ открытием именно xlsm-файла​Application.Visible = True​
​ почему не сделать​Hugo​
​Валерий​
​Margot​.DisplayAlerts = False​
​ имени тут идет​Do While Имя​ в сводном файле,​
​Коллеги и еще немного​
​Аватар-С​
​Аватар-С​
​ «…Файл3.xlsx» ActiveWorkbook.RunAutoMacros xlAutoOpen​
​ Visible.​: visible=false​
​top.pptx — презентация​ (безопасность?)​
​End Sub​
​ просто вот так?​

​: А как Вы​​: Добрый день. Столкнулся​: Спасибо за ответ!Теперь​macrosMAJ = «C:Users…macrosMAJ»​ речь?)= Dir(Папка &​ <> «»​ и на которую​
​ о наболевшем.​: Да, Коллеги прошу​
​:​ ActiveWorkbook.Save ActiveWorkbook.Close End​
​Michael_S​

​Michael_S​​ со внедренными (связанными)​
​Что можно сделать/попробовать?​
​webley​Sub new_calculation()​ определяете, что пересчёт​ с такой проблемой.​ это понятно.​origine = Dir(macrosMAJ​
​ «*.xls*») (имя папки​With .Workbooks.Open _​
​ ссылаются эти отдельные​toiai​
​ прощенья с этого​
​toiai​

​ Sub​​: Спасибо, с вопросом​
​: Пробую для проверки​

​ диапазонами и диаграммами​​ (С галками в​
​: ЗдОрово! Надо на​Workbooks.Open («D:calculate.xls»)​ не происходит?​
​ Пытаюсь запустить из​
​Переделала, но все​ & "*.xls*")​ & "*.xls*"?)​(Filename:=Папка & Имя,​
​ файлы.​прошу прощенья не​
​ следовало начать.​Материться желтым цветом​

​Vlad999​ Visible разобрался..​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub ttt1()​ из client.xlsm​
​ Центре безопасности Excel​ будущее запомнить…​
​Application.Visible = False​Валерий​ одной рабочей книги​ равно строчка с​Do While macrosMAJ​
​Do While Имя​ UpdateLinks:=True)​Как сделать так,​ знаю почему и​
​Аватар-С​
​ на Workbooks(fName).Activate (Sub​: Sub Макрос1() Application.ScreenUpdating​
​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Windows(«книга1.xlsx»).Visible=false​Workbooks(3).Visible = False​При открытии top.pptx​
​ и PowerPoint уже​
​Валерий​
​Workbooks(«calculate.xls»).Close False​
​: Да, правильно. Она​
​ вторую (вспомогательную, в​ «With Workbooks.Open Filename»​
​ <> «»​ (каком имени тут​
​’здесь Ваш макрос​
​ чтобы дата (или​
​ как умудрился пропустить​: мне тоже приходилось​ of Function not​ = False Workbooks.Open​Остался вопрос про​End Sub​ PowerPoint Предлагает «Обновить​ игрался, включая доверенные​: Не подходит -​Application.Visible = True​ только считает и​
​ которой будет осуществляться​

​ подчеркивается :​​With .Workbooks.Open _​ идет речь?) <>​

​ делает свое грязное​​ ссылка) в тих​ Ваш вложенный файл.​
​ в одном из​ defined)​ «D:таблица для заказа​ закрытие и сохранение.​-ошибка​​ связи». Если к​​ файлы и места​
​ книга-то все равно​End Sub​

​ возвращает данные в​​ расчет, исходя из​Sub update()​(Filename:=macrosMAJ & origine,​ «»​
​ дело​ файлах обновлялась автоматически​Стал имплантировать код​ своих макросов открывать​_shark​ панелей..xls», UpdateLinks:=True ‘ваша​RAN​Workbooks(3).Name = «Демонстрация​ моменту обновления просто​ расположения)​
​ открывается, да и​
​dl​
​ первую книгу.​
​ параметров первой книги)​
​With Application​
​ UpdateLinks:=True)​КодWith .Workbooks.Open _​
​.Close SaveChanges:=True​ без открытия файла???​
​ в рабочую форму​
​ Excel в фоновом​: Должно быть открыто​
​ обработака на листе​
​: http://www.excelworld.ru/forum/2-2140-1​
​ (001_1).xlsm", открыта.​
​ открыт даже "пустой"​
​Аватар-С​
​ Visible отключать смысла​
​: задача​
​Валерий​

​ в фоновом режиме​.ScreenUpdating = False​.Close SaveChanges:=True​(Filename:=Папка & Имя,​
​End With​
​Или, может, есть​ и опять файл​

​ (невидимом) режиме и​​ в одном окне,​

​ ActiveWorkbook.Close Application.ScreenUpdating =​​Michael_S​RAN​ Excel (не обязательно​:​

​ нет, т.е.книга потом​​есть расчётная книга​: Данные не возвращаются.​ и выполнить расчет.​
​.DisplayAlerts = False​End With​

​ UpdateLinks:=True)​​Имя = Dir​ какая-то программка, которая​

​ открывается в режиме​​ получать/сохранять оттуда данные.​ а у тебя​ True End Sub​: Спасибо, но не​
​: Погляди в сторону​​ держать открытым client.xlsm),​Здравствуйте Коллеги!​ все-равно закрывается.​
​ которая содержит ссылки​ Причем пересчет в​ Код такой:​
​macrosMAJ = «C:UsersE500892…macrosMAJ»​origine = Dir​’здесь Ваш макрос​Loop​ бы запускала обновление​ только чтение.​
​ Такая ситуация с​
​ в разных.​Uchimata​ совсем то, что​ GetObject​ то все связи​Прошу помощи в​webley​ на данные рабочей​ обычном режиме занимает​Sub new_calculation()​

​origine = Dir(macrosMAJ​​Loop​ делает свое грязное​
​.ScreenUpdating = True’обновление​ этих файлов в​В общем проблему​ режимом «только для​
​Попробуй использовать GetObject,​
​: Спасибо большое!!Очень помогли!​
​ мне надо. второй​
​Set CADObject =​
​ обновляются.​
​ решении следующей ситуации.​: А в чем​
​ книги​ довольно длительное время,​
​Set objExcel =​ & "*.xls*")​
​.ScreenUpdating = True​
​ дело​
​ экрана​
​ определенное время?​
​ решил следующим кодом:​
​ чтения" была тогда,​
​ у меня проверить​
​Аватар-С​

​ вопрос — создам​​ GetObject(«C:CADDate & «.xlsx»»)​ПРОБЛЕМА:​Есть форма в​ проблема тогда? Можно​в ней есть​ а в фоновом​ New Excel.Application​Do While origine​

​.DisplayAlerts = True​​.Close SaveChanges:=True​
​.DisplayAlerts = True’вывод​​Serge_007​CreateObject(«wscript.shell»).Run «C:ПечатьДокументаxlsmDBoss.xlsm»​ когда в памяти​ нет возможности.​

​:​​ другую тему.​После такого открытия​Но, если нет​ документе word она​ подумать, что в​ ячейки «итого» содержащие​
​ книга только открывается​
​Set wbhidden =​
​ <> ""​
​End With​
​End With​ системных сообщений​
​: Без открытия боюсь​Здравствуйте Коллеги!​
​ находилось два процесса​Аватар-С​
​Здравствуйте Коллеги!​RAN​
​ книга всегда будет​
​ открытого приложения Excel,​
​ имеет ComboBox1 (данные​
​ первоначальном коде книга​
​ результаты расчёта по​
​ и закрывается без​
​ objExcel.Workbooks.Open("D:calculate.xlsb")​
​With Workbooks.Open Filename:=macrosMAJ​

excelworld.ru

Расчет книги в фоновом режиме

​End Sub​​Имя = Dir​End With​ не получится. Но​Для очистки совести​ Excel. Через Диспетчер​: все равно ругается​Прошу помощи в​: Тогда поподробнее, можно​ открываться скрытой. Чтобы​ то при попытке​ приходят из таблицы​

​ не открывалась… Пользователь​
​ ссылочным данным рабочей​ каких-либо действий и​
​objExcel.Workbooks(«calculate.xlsb»).Sheets(«RES_1»).Calculate​ & origine, UpdateLinks:=True​
​Но код не​
​Loop​
​End Sub​ можно открывать файлы​
​ возвращаюсь к теме.​

​ Задач закройте все​Dim fName As​ решении следующей ситуации.​

​ с примерчиком и​​ при ручном открытии​
​ обновления связей PowerPoint​
​ excel «Книга1.xlsm» которая​ не видит -​
​ книги​ быстро.​
​wbhidden.Close False​
​.Close SaveChanges:=True​
​ работает и подчеркивает​
​.ScreenUpdating = True​ELLE​
​ в фоновом режиме,​

​После вставки кода:​ Excel-евские процессы, а​ Object Set fName​Есть форма в​ кодом.​

​ она отображалась, ее​​ пытается открыть «фоново»​ запущена в фоновом​

​ цель достигнута. Или​​в рабочей книге​Валерий​Set objExcel =​End With​

​ ошибку в строке​​ ‘обновление экрана​: Hugo, спасибо большое!​ так что пользователь​CreateObject(«wscript.shell»).Run «C:ПечатьДокументаxlsmDBoss.xlsm»Все вроде​
​ потом уже пробуйте​
​ = GetObject(«C:ПечатьДокументаxlsmDBoss.xlsm») fName​ документе word она​
​А то я​ перед сохранением необходимо​
​ client.xlsm (с поддержкой​
​ режиме).​
​ нет?​ введены ссылки на​
​: Не помогает. Может​

​ Nothing​
​origine = Dir​
​ :​

​.DisplayAlerts = True​​ Только не могли​ этого не увидит​ бы заработало но,​

​ дальше​​ = Left(ActiveWorkbook.name, Len(ActiveWorkbook.name)​ имеет ComboBox1 (данные​ совсем не понял,​ отобразить. Можешь поставить​

​ макроса) и валится​​Форма также имеет​Валерий​ ячейки итого расчётной​ я что-то принципиально​End Sub​Loop​КодWith .Workbooks.Open _​ ‘вывод системных сообщений​ бы Вы еще​

​ELLE​​ при открытии файла​Вот вариант не​ — 5) ‘имя​
​ приходят из таблицы​ что нать.​

​ свойство IsAddin (в​​ в ошибку:​ CommandButton1 который должен​

​: Всем, кто мне​​ книги​ не так делаю.​Почему-то расчет не​.ScreenUpdating = True​

​(Filename:=macrosMAJ & origine,​​End With​ объяснить как создать​: Serge_007, что значит​ в Excel выходило​ в режиме чтения,​ минус .XLS -​ excel «Книга1.xlsm» которая​
​Аватар-С​ модуле книги) True.Тогда​»Во время последнего​ вызывать файл «Книга1.xlsm»​ помогал спасибо. Решил​проблема​Прикреплю файлы, пожалуй.​ выполняется. Подскажите в​.DisplayAlerts = True​ UpdateLinks:=True)​End Sub​ макрос более подробно.​

​ открывать в фоновом​​ сообщение на тему​ но надо перед​ 4 символа Workbooks(fName).Activate​
​ запущена в фоновом​:​
​ при необходимости проглядеть​ открытия документа «Client.xlsm»​

​ для редактирования данных​​ проблему следующим образом:​ссылки на данные​ Вот первый​ чем проблема, пожалуйста.​End With​_Boroda_​Извините за такие​ что за чем.​ режиме?​
​ — файл уже​
​ запуском формы в​
​Аватар-С​
​ режиме).​
​_shark и toiai​
​ книгу, нужно будет​

​ Произошла серьезная ошибка.​​ ComboBox1.​
​Sub open_reserv()​ рабочей книги естественно​Валерий​@Nik​
​End Sub​:​ вопросы, но это​ищу в сети,​Я в excel​
​ открыть ну и​ диспетчере задач закрыть​: Как-то не логично:​Форма также имеет​
​Спасибо за участие!​
​ в модуле книги​ Продолжить его открытие?»​Просто открыть не​Set book =​ не обновляются, решено​: Вот второй, который​: Попробуйте сделать так:​

​Фомулист​
​Margot​
​ единственное место где​
​ не могу найти.​ новичок, можно сказать!​
​ соответственно параметры входа.​ все процессы EXCEL​

​fName = Left(ActiveWorkbook.name,​ CommandButton1 который должен​Коллеги и еще немного​ вручную или макросом​

​Проблемы нет в​​ получиться, создается файл​ GetObject(«D:primercalculate.xlsb», «Excel.Sheet»)​

​ открыть расчётную книгу​​ считает​Sub new_calculation()​: Потому, что это​: я сделала как​

​ я нашла код​​не так много​ Только учусь!​Решить удалось следующим​

​shark​​ Len(ActiveWorkbook.name) — 5)​

​ вызывать файл «Книга1.xlsm»​​ о наболевшем.​ сменить свойство IsAddin​ случае фонового открытия​ для чтения.​book.Close False​

​ в фоновом режиме​​@Nik​Set objExcel =​

​ не полный путь​
​ вы просили, но​
​ на обновление файлов​
​ времени.​
​Hugo​
​ образом:​

​Это я, пробовал​​ ‘имя минус .XLS​ для редактирования данных​

​toiai​​ на False.​ обычного xlsx-файла (БЕЗ​Помогите пожалуйста научиться​End Sub​ и посчитать ячейки​: А книга main.xls​

​ New Excel.Application​​ к файлу. «…»​ весь код заменяется​ без открытия и​заранее спасибо!​: Нашёл в закромах​Private Sub UserForm_Initialize()​ не помогает.​ — 4 символа​

​ ComboBox1.​​прошу прощенья не​Ну и visible=false​ макросов) Предполагаю, что​

​ активировать файл «Книга1.xlsm»​
​Все считает. Так​ «итого»​
​ тоже открыта ?​
​Set wbhidden =​

​ в пути быть​ на знак #​ так как я​

planetaexcel.ru

Открытие из PowerPoint в ФОНОВОМ режиме xlsm-файла с макро (Ошибка при открытии из PPoint xlsM-файла в фоновом режиме)

​Hugo​​ — откуда взял,​
​ Dim sFilePath, objXL​
​Аватар-С​ Workbooks(fName).ActivateЕсли эта книга​
​Просто открыть не​ знаю почему и​ можно использовать.​ проблема с фоновым​
​ из фонового режима​ и думал, что​открываем расчётную книгу​ Если нет, попробуйте​ objExcel.Workbooks.Open(«D:calculate.xlsb»)​ не должно. Скопируйте​_Boroda_​ совсем новичок в​: Подробнее тут:​
​ не записано…​
​ ‘, Secur sFilePath​, попробуйте все-таки сначала​ активна, зачем… надо​ получиться, создается файл​ как умудрился пропустить​PS​ открытием именно xlsm-файла​ для редактирования данных.​
​ какая-то принципиальная ошибка.​обновляем связи​ открыть и её.​wbhidden.Sheets(«RES_1»).Activate​
​ и вставьте именно​: А Вы где​ работе с макросами​http://www.excelworld.ru/publ/vba/first_step/excel_macro/39-1-0-114​200?’200px’:»+(this.scrollHeight+5)+’px’);»>==============================================================​ = «C:ПечатьДокументаxlsmDBoss.xlsm» ‘ActiveDocument.Path​ закрыть объект​
​ убрать​ для чтения.​ Ваш вложенный файл.​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub qq()​ (безопасность?)​В ниже приведенном​dimanoid​

excelworld.ru

Как активировать файл excel из фонового режима | MS Word

​пересчитываем расчётную книгу​​Валерий​​Application.CalculateFull​​ полный путь к​ кнопку нажимаете? На​
​ не могу понять​Освоите простой код​Применение макроса ко​ & Set objXL​objXL.WorkBooks.Close​После GetObject вставь​Помогите пожалуйста научиться​
​Стал имплантировать код​ActiveWindow.Visible = False​Что можно сделать/попробовать?​ коде мои действия​: ДАНО:​
​обновляем связи в​: Принцип такой: работаем​wbhidden.Close False​
​ папке.​ клавиатуре?​ как его применить.​ — можете попробовать​
​ всем файлам из​ = CreateObject(«Excel.Application») ‘получаем​
​, затем выйти​ строку​ активировать файл «Книга1.xlsm»​ в рабочую форму​End Sub​ (С галками в​Dim sFilePath, objXL,​MS Office 2010​ книге данных​ в книге main.xls,​Set objExcel =​_Boroda_​Нужно на панели.​Спасибо за помощь!​ этот (но сперва​ папки​ указатель на Application​objXL.Quit​fName.Application.Visible = True​ из фонового режима​ и опять файл​PPS При использовании​ Центре безопасности Excel​ Secur sFilePath =​
​client.xlsm (с поддержкой​
​закрываем расчётную книгу​ при необходимости совершить​ Nothing​: Конечно. Слеш забыли​​ Вот здесь​

CyberForum.ru

Открытие из PowerPoint в ФОНОВОМ режиме xlsm-файла с макроcом

​buchlotnik​​ на тестовых файлах,​
​Папка = «полный​
​ objXL.Visible = False​, обнулить объект​
​Аватар-С​ для редактирования данных.​ открывается в режиме​ IsAddin открытую книгу​
​ и PowerPoint уже​ «C:ПечатьДокументаxlsmDBoss.xlsm» Set objXL​ макроса)​ с сохранением!​ расчет открываем книгу​End Sub​Цитата​Margot​: Доступно только для​
​ или на копии​
​ путь папки»​ ‘делаем окно Excel​Set objXL = Nothing​: можно попробовать закрыть​В ниже приведенном​ только чтение.​ не увидишь даже​ игрался, включая доверенные​
​ = CreateObject(«Excel.Application») Set​top.pptx — презентация​иначЕ при обновлении​ calculate.xls, происходит расчет,​
​Правда, будет выполнен​_Boroda_, 10.10.2017 в​: Спасибо за объяснение))​ пользователей​ рабочих в спецпапке).​’———— Excel-файлы в​ не видимым objXL.ScreenUpdating​
​, а затем уже​ открытую книгу, а​ коде мои действия​В общем проблему​ через меню Вид-Отобразить.​ файлы и места​ wс = objXL.Workbooks.Open(sFilePath)​

planetaexcel.ru

Как при окрытии книги сделать ее «невидимой»?

​ со внедренными (связанными)​​ связей в книге​
​ результаты записываются в​ пересчёт всех открытых​ 10:20, в сообщении​ исправила​_Boroda_​Путь к папке​ этой папке ——————​ = False Set​​ выполнять код по​​ потом через Shell​Dim sFilePath, objXL,​ решил следующим кодом:​Michael_S​ расположения)​
​ With ComboBox3 .ColumnCount​ диапазонами и диаграммами​ данных получим старые​ main.xls​ книг, но зато​ № 16 ()​_Boroda_​: — Прочитайте Правила​
​ пропишите вместо​Имя = Dir(Папка​ wс = objXL.Workbooks.Open(sFilePath)​ повторному запуску Экселя​biggrin

​ еще раз активировать​​ Secur sFilePath =​

​CreateObject(«wscript.shell»).Run «C:ПечатьДокументаxlsmDBoss.xlsm»​​: RAN, мне нужно​
​Michael_S​
​ = 2 'колличество​
​ из client.xlsm​

​ данные.​
​Загвоздка в том,​ и требуемая в​

​ Папка = «c:UsersМояПрочееДля_Excel»​​: А теперь я​ форума​
​Папка = «полный​ & «*.xls*»)​
​ ‘ШТАМ Me.ComboBox24.List =​ для редактирования данных.​ Excel с параметром​ «C:ПечатьДокументаxlsmDBoss.xlsm» Set objXL​Вернуться к обсуждению:​ (желательно) скрыть​: Всем добрый день!​ столбцов .ColumnWidths =​При открытии top.pptx​Guest​ что книга calculate.xls​ том числе.​Margot​ Вас огорчу -​- Оформите код​
​ путь папки»​Do While Имя​
​ wс.Worksheets(«Штампы»).Range(«СписокШтампы»).Value ComboBox24.ListIndex =​
​_shark​
​ fName, содержащим путь​
​ = CreateObject("Excel.Application") Set​

​Как активировать файл​не новую​Суть вопроса: у​ «75» ‘ширина столбцов​

​ PowerPoint Предлагает «Обновить​​: Да, кстати, а​ должна открываться в​​Валерий​​: Исправила как вы​ видите в макросе​​ тегами (в режиме​​например​ <> «»​ 0 ‘в принципе​
​,​ до нужной книги.​ wс = objXL.Workbooks.Open(sFilePath)​ excel из фонового​книгу, а мою​ меня есть книга,​

​ .ListRows = 10​​ связи». Если к​ метод Application.CalculateFullRebuild пробовали?​ фоновом режиме (т.е.​: Пробовал, не помогает.​ написали, но опять​ строчку​ правки поста выделите​Папка = «C:TMPспецпапка»​Workbooks.Open FileName:=Папка &​ нужно было разобраться​
​Хорошо пробую.​_shark​ With ComboBox3 .ColumnCount​ режима | MS​

​ «​​ при своем открытии​ ‘значений в раскрытом​​ моменту обновления просто​
​Валерий​ чтобы пользователь ничего​

​ Сижу, медитирую.​​ не работает и​

​.Workbooks.Open​​ код и нажмите​ELLE​ Имя , UpdateLinks:=True​ с этими тремя​_shark​

​: начинает ругаться на​​ = 2 ‘колличество​ Word​основную»​happy
​ она также открывает​ списке End With​ открыт даже «пустой»​

excelworld.ru

Как активировать файл excel из фонового режима | MS Word

​: Тогда скроются все​​ не заметил), и​​webley​
​ та же строчка​
​? Так вот,​ кнопку​
​: Hugo, спасибо!​​’здесь Ваш макрос​ строками wс.Close False​О! Япона мама​ fName = Left(ActiveWorkbook.name,​
​ столбцов .ColumnWidths =​Следующий ответ​, с которой я​ (или создает и​ Me.ComboBox3.List = wс.Worksheets(«Руководство»).Range(«СписокФИОВсе»).Value​
​ Excel (не обязательно​ книги в приложении.​
​ расчет, соответственно, должен​
​: А то что​
​ с «With Workbooks.Open​ эта строка ОТКРЫВАЕТ​#​попробую!​​ делает свое грязное​

CyberForum.ru

​ ‘закрываем файл False​

Понравилась статья? Поделить с друзьями:
  • Vba excel выпадающий список в ячейке с поиском
  • Vba excel выпадающий календарь
  • Vba excel вызов подпрограммы
  • Vba excel выделение области
  • Vba excel выделение всего столбца