Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Скачать ЕГРЮЛ с сайта средствами VBA
 
Здравствуйте! Может есть такое же решение, но для javascript?  
Изменено: Алексей Кузнецов - 05.10.2023 07:30:52
Асинхронное выполнение операций
 
Задачка действительно решается на примере таймера:  
 
cTimer.cls:  
 
VERSION 1.0 CLASS  
BEGIN  
 MultiUse = -1  'True  
END  
Attribute VB_Name = "cTimer"  
Attribute VB_GlobalNameSpace = False  
Attribute VB_Creatable = False  
Attribute VB_PredeclaredId = False  
Attribute VB_Exposed = True  
Option Explicit  
Dim intInterval As Long  
Public Event Tick()  
Dim fStop As Boolean  
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)  
 
Public Property Get Interval() As Long  
   Interval = intInterval  
End Property  
 
Public Property Let Interval(i As Long)  
   intInterval = i  
End Property  
 
Public Sub StartTimer()  
   fStop = False  
   MainCycle  
End Sub  
 
Public Sub StopTimer()  
   fStop = True  
End Sub  
 
Private Sub MainCycle()  
   Do  
       'Sleep intInterval  
       DoEvents  
       RaiseEvent Tick  
   Loop Until fStop = True  
End Sub  
 
frmmain.frm:  
 
VERSION 5.00  
Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} frmMain    
  Caption         =   "Пример реализации Таймера"  
  ClientHeight    =   3120  
  ClientLeft      =   45  
  ClientTop       =   435  
  ClientWidth     =   4710  
  OleObjectBlob   =   "frmMain.frx":0000  
  StartUpPosition =   1  'CenterOwner  
End  
Attribute VB_Name = "frmMain"  
Attribute VB_GlobalNameSpace = False  
Attribute VB_Creatable = False  
Attribute VB_PredeclaredId = True  
Attribute VB_Exposed = False  
Option Explicit  
 
Dim index As Integer  
Dim intPicturesCount As Integer  
Dim WithEvents tmrMain As cTimer  
Attribute tmrMain.VB_VarHelpID = -1  
 
Private Sub UserForm_Initialize()  
Label1.Caption = 1  
Set tmrMain = New cTimer  
   tmrMain.Interval = 1000  
End Sub  
 
Private Sub UserForm_Terminate()  
   Set tmrMain = Nothing  
End Sub  
 
Private Sub cmdStart_Click()  
   tmrMain.StartTimer  
End Sub  
 
Private Sub cmdStop_Click()  
   tmrMain.StopTimer  
End Sub  
 
Private Sub tmrMain_Tick()  
On Error GoTo ErrClear  
   Label1.Caption = CInt(Label1.Caption) + 1  
   Label1.Visible = True  
   Exit Sub  
ErrClear:  
   Label1.Caption = 1  
End Sub  
 
modMain.bas:  
 
Attribute VB_Name = "modMain"  
Option Explicit  
 
Public Sub start_timer_form()  
   frmMain.Show 0  
End Sub  
 
 
запускать надо через процедуру start_timer_form. Тогда наглядно видно, что Excel не висит при работе бесконечного цикла...
Асинхронное выполнение операций
 
{quote}{login=McCinly}{date=25.01.2010 01:14}{thema=}{post}Только создав новое приложение. Вы можете написать программу, запустите ее из VBA, а она будет порождать процессы какие только захотите, но все это будет за рамками текущего приложения Excel.    
 
А средствами VBA увы никак.{/post}{/quote}  
 
А разве 1 приложение не будет ждать пока завершаться процедуры в новом?
Асинхронное выполнение операций
 
{quote}{login=слэн}{date=25.01.2010 09:00}{thema=}{post}проще всего создать еще одну копию иксель:  
 
Set excel = New excel.Application  
 
загрузить туда копию вашего файла и запускать макросы там, тогда псевдомногозадачность будет осуществляться средствами widows..{/post}{/quote}  
 
Думаю, что ответ надо искать где-то здесь...  
 
http://kitkitch.narod.ru/articles/vbatut/21_ch_15.html  
 
Через обработку событий. Как в примере с созданием компонента-таймера.  
Таймер будет проверять в бесконечном цикле, переменную или пользовательский объект с параметрами запуска процедур. Правда вопрос насколько ресурсу будут загружены.  
Вообщем ушел пробовать...
Асинхронное выполнение операций
 
{quote}{login=The_Prist}{date=24.01.2010 08:54}{thema=Re: Re: }{post}{quote}{login=lawlex}{date=24.01.2010 08:52}{thema=Re: }{post}Совершенно верно...{/post}{/quote}Совершенно никак...А позвольте полюбопытствовать: зачем?{/post}{/quote}  
 
Есть необходимость в фоновом режиме запускать процедуры, не подвешивая основное приложение, например, создавать в фоновом режиме документы word на основе данных из таблицы excel. Когда документ word создается один проблемы большой нет, когда документов уже 10 и больше, то проблема становится ощутимой.
Асинхронное выполнение операций
 
{quote}{login=Юрий М}{date=24.01.2010 05:55}{thema=}{post}В том смысле, что пока выполняется один, можно запустить и другой?{/post}{/quote}  
 
Совершенно верно...
Асинхронное выполнение операций
 
Всем доброго времени суток!  
 
Подскажите можно ли в VBA реализовать асинхронное выполнение процедур (макросов)?
Страницы: 1
Наверх