powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запуск екселя с макросами, проблема в его самозакрытии
19 сообщений из 19, страница 1 из 1
Запуск екселя с макросами, проблема в его самозакрытии
    #39072394
Руслан7575
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
здравствуйте, такая проблема. Написал макрос считывающий температуру с датчика и и включающий реле в екселе. После считывания макрос открывает еще файл таблицы и туда вписывает показания, затем закрывает тот файл и закрывает сам себя.
Поставил я запуск данного файла в Планировщике заданий (винда семерка) в общем когда в ручную запускаешь файл щелкая мышкой все работает. Но от запуска планировщика задача не закрывается сама а висит в диспечере задач и поэтому не может быть запущена через промежуток времени. В чем проблема?
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39072416
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
маловато подробностей
поподробнее о том, как запускается макрос, как он закрывает сам себя
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39072422
Руслан7575
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Все уже нашел причину. Планировщик не правильно настроил, уже час все работает.
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39072426
Руслан7575
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
а нет вру, в диспечере повисло 10 задач екселя, вот код


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim KeUSB As New MSComm
 Private Sub Workbook_Open()
 Application.Visible = False
Call hhh
End Sub

Sub hhh()
 
    Dim te(4)
 Dim i As Integer
 
  For i = 0 To 4
  Call acp(t)
  Sleep 250&
 te(i) = t
 
 
            Next i
                    Bg = (te(0) + te(1) + te(2) + te(3) + te(4)) / 5
           
           ' Range("G20") = Bg
     ' Sheets("Лист1").Range("G5") = te(4)
      'Sheets("Лист1").Range("H10") = TSR1
        
      TSR = Bg
      If KeUSB.PortOpen = False Then Call port
       KeUSB.Output = "$KE,RDR,ALL" & Chr(13) & Chr(10)
    Sleep 250&
   sost = Mid(KeUSB.Input, 10, 1)
   ChDir "h:\Управл\"
Workbooks.Open Filename:="h:\Управл\результат"

   If TSR < Range("B1") And sost = 0 Then Call Click4
   
   If TSR >= Range("B1") And sost = 1 Then Call Click5
   If KeUSB.PortOpen = False Then Call port
    KeUSB.Output = "$KE,RDR,ALL" & Chr(13) & Chr(10)
    Sleep 250&
   sost = Mid(KeUSB.Input, 10, 1)
  
  
Call popo(ii)
  Range("A" & ii) = Date
 Range("B" & ii) = Time
Range("C" & ii) = TSR
Range("E" & ii) = Range("B1")
   If sost = 0 Then Range("D" & ii) = "Выключен" Else Range("D" & ii) = "Включен"
   
ActiveWorkbook.Save
'Закрыть книгу
ActiveWorkbook.Close
Windows("1р_1.xlsm").Activate
ActiveWorkbook.Close
        End Sub

 Sub port()

'Настраиваем порт
    KeUSB.CommPort = 3
    KeUSB.Settings = "9600,N,8,1"
    KeUSB.Handshaking = comNone
    KeUSB.InputLen = 0
    KeUSB.InBufferSize = 40
    KeUSB.OutBufferSize = 40
    KeUSB.RThreshold = 0
'Открываем порт

    KeUSB.PortOpen = True
    
    
    
End Sub





Private Sub Click4()

If KeUSB.PortOpen = False Then Call port
'Формируем команду $KE,WR
   KeUSB.Output = "$KE,REL," & 1 & "," & 1 & Chr(13) & Chr(10)
   Sleep 550&
   KeUSB.PortOpen = False
   Sleep 50&



End Sub

Private Sub Click5()

'Workbooks.Open "K:\Управл\1р_0.xlsm"
'Открываем порт
If KeUSB.PortOpen = False Then Call port
'Формируем команду $KE,WR
   KeUSB.Output = "$KE,REL," & 1 & "," & 0 & Chr(13) & Chr(10)
   Sleep 550&
   KeUSB.PortOpen = False
   Sleep 50&

End Sub
  Sub acp(t)
 
  Dim b() As Byte
    On Error Resume Next
    If KeUSB.PortOpen = False Then Call port
    If Err Then
      MsgBox "Com" & MSComm1.CommPort & ": not available. Change CommPort property to another port."
      Exit Sub
    End If
    
KeUSB.Output = "$KE,ADC,1" & Chr(13) & Chr(10)
    Sleep 250&
     b = KeUSB.Input
        
      vi = Mid(b, 8, 4) * 5.18 / 1023
   t = 25 + (vi - 2.98) / 0.01
   KeUSB.Output = "$KE,RDR,ALL" & Chr(13) & Chr(10)
   Sleep 250&
   sost = Mid(KeUSB.Input, 10, 1)
      If sost = 1 Then t = t - 0.9
      
      ' Sheets("Лист1").Range("G5") = t
     
    
End Sub
 
Private Sub Click7()

Range("A1", "D100").Select
'Скопировать то, что выделено
Selection.Copy
Windows("1р_1.xlsm").Activate
    Range("A1:D100").Select
    
    Selection.Copy

ChDir "h:\Управл\"
Workbooks.Open Filename:="h:\Управл\результат"
    
    Range("A1").Select
    
    ActiveSheet.Paste
ActiveWorkbook.Save
'Закрыть книгу
ActiveWorkbook.Close
Windows("1р_1.xlsm").Activate
        End Sub
        

   Sub popo(ii)
  
    ii = 3
tt = Range("A3")
Do While tt <> Empty
     ii = ii + 1
tt = Range("A" & ii)
            Loop

          End Sub
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39072436
Руслан7575
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допер!!! забыл закрыть табличный файл он и остается открыт ...
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39072437
Руслан7575
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Руслан7575,
Нет вроде после записи в результаты стоит активную книгу закрыть, почему не работает? Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39072448
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39072449
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код не рассматривал, его форматирование ужасно.
Но поиском нигде не нашел Application.Quit
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39072451
Руслан7575
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
Спасибо попробую, а то от селект избавился а от активате нет
Dim OtherWorkbook As Workbook
'затем создаем новую книгу:
Set OtherWorkbook = Workbooks.Add
'... или открываем существующую:
Set OtherWorkbook = Workbooks.Open("c:\b
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39073242
Руслан7575
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заменил, не помогло. Почему-то в диспечере задач висит процесс exel.exe после запуска из Планировщика задач, хотя на экране никаких окон нет. А при запуске вручную процесса не остается. Наверное глюк с Планировщика...
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39073246
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Application.Quit сделал?
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39073248
Руслан7575
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProКод не рассматривал, его форматирование ужасно.
Но поиском нигде не нашел Application.Quit

close а не выход

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim KeUSB As New MSComm
 Private Sub Workbook_Open()
 Application.Visible = False
Call hhh
End Sub

Sub hhh()


    Dim te(4)
 Dim i As Integer
 
  For i = 0 To 4
  Call acp(t)
  Sleep 250&
 te(i) = t
 
 
            Next i
                    Bg = (te(0) + te(1) + te(2) + te(3) + te(4)) / 5
           
           ' Range("G20") = Bg
     ' Sheets("Лист1").Range("G5") = te(4)
      'Sheets("Лист1").Range("H10") = TSR1
        
      TSR = Bg
      If KeUSB.PortOpen = False Then Call port
       KeUSB.Output = "$KE,RDR,ALL" & Chr(13) & Chr(10)
    Sleep 250&
   sost = Mid(KeUSB.Input, 10, 1)
   'ChDir "h:\Управл\"
'Workbooks.Open Filename:="h:\Управл\результат"
Dim OtherWorkbook As Workbook

Set OtherWorkbook = Workbooks.Open("h:\Управл\результат.xlsx")
 'OtherWorkbook.Open
   If TSR < Range("B1") And sost = 0 Then Call Click4
   
   If TSR >= Range("B1") And sost = 1 Then Call Click5
   If KeUSB.PortOpen = False Then Call port
    KeUSB.Output = "$KE,RDR,ALL" & Chr(13) & Chr(10)
    Sleep 250&
   sost = Mid(KeUSB.Input, 10, 1)
  
  
Call popo(ii)
  Range("A" & ii) = Date
 Range("B" & ii) = Time
Range("C" & ii) = TSR
Range("E" & ii) = Range("B1")
   If sost = 0 Then Range("D" & ii) = "Выключен" Else Range("D" & ii) = "Включен"
   
OtherWorkbook.Save
'Закрыть книгу
'Windows("результат.xlsx").Activate
OtherWorkbook.Close
'Windows("1р_1.xlsm").Activate
'ActiveWorkbook.Close
ThisWorkbook.Close
        End Sub
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39073266
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руслан7575close а не выходну так. Ты не закрываешь эксель, и потом удивляешься, что он висит в процессах.
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39073293
Руслан7575
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

сделал так
Код: vbnet
1.
2.
3.
4.
5.
6.
OtherWorkbook.Save

OtherWorkbook.Application.Quit

ThisWorkbook.Application.Quit
        End Sub



теперь при запуске из Планировщика (именно когда из него) через раз вылетает:
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39073303
Руслан7575
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запуск поставил со стороннего органайзера. теперь работает как часы. Планировщик походу глючный.
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39073306
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руслан7575
Код: vbnet
1.
2.
3.
OtherWorkbook.Application.Quit

ThisWorkbook.Application.Quit

Application у тебя один, не надо его два раза закрывать, может оттого и глюк
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39073467
Руслан7575
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
С какого фига вылазит фэн ридер 11, вообще не понятно.
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39074953
Руслан7575
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, все работает. но есть одна проблема, я конечно прописал при ошибке закрывать файл екселя, но ошибка возникает так как либо дрова коряво работают , либо устройство подключенное в юсб порт и определенное как COM порт. Есть ли возможность командно обновить ком3 порт, чтобы устранить сбой.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub port()

'Настраиваем порт
    KeUSB.CommPort = 3
    KeUSB.Settings = "9600,N,8,1"
    KeUSB.Handshaking = comNone
    KeUSB.InputLen = 0
    KeUSB.InBufferSize = 40
    KeUSB.OutBufferSize = 40
    KeUSB.RThreshold = 0
'Открываем порт
Sleep 50&
KeUSB.PortOpen = True



При обращении выдает ошибку , можно поставить цикл пока не откроет порт, но наверное повиснет на этом цикле.
...
Рейтинг: 0 / 0
Запуск екселя с макросами, проблема в его самозакрытии
    #39074970
Руслан7575
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НАшел вот это

Код: c#
1.
Microsoft.Win32.Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR", "Start", 4, Microsoft.Win32.RegistryValueKind.DWord);



Код: c#
1.
Microsoft.Win32.Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR", "Start", 3, Microsoft.Win32.RegistryValueKind.DWord);




Как преобразовать в ВБА??
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запуск екселя с макросами, проблема в его самозакрытии
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]