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

Все уже нашел причину. Планировщик не правильно настроил, уже час все работает.
...
Рейтинг: 0 / 0
08.10.2015, 21:35
    #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
08.10.2015, 21:50
    #39072436
Руслан7575
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск екселя с макросами, проблема в его самозакрытии
Допер!!! забыл закрыть табличный файл он и остается открыт ...
...
Рейтинг: 0 / 0
08.10.2015, 21:57
    #39072437
Руслан7575
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск екселя с макросами, проблема в его самозакрытии
Руслан7575,
Нет вроде после записи в результаты стоит активную книгу закрыть, почему не работает? Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
08.10.2015, 22:06
    #39072448
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск екселя с макросами, проблема в его самозакрытии
...
Рейтинг: 0 / 0
08.10.2015, 22:15
    #39072449
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск екселя с макросами, проблема в его самозакрытии
Код не рассматривал, его форматирование ужасно.
Но поиском нигде не нашел Application.Quit
...
Рейтинг: 0 / 0
08.10.2015, 22:16
    #39072451
Руслан7575
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск екселя с макросами, проблема в его самозакрытии
Shocker.Pro,
Спасибо попробую, а то от селект избавился а от активате нет
Dim OtherWorkbook As Workbook
'затем создаем новую книгу:
Set OtherWorkbook = Workbooks.Add
'... или открываем существующую:
Set OtherWorkbook = Workbooks.Open("c:\b
...
Рейтинг: 0 / 0
09.10.2015, 18:36
    #39073242
Руслан7575
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск екселя с макросами, проблема в его самозакрытии
Заменил, не помогло. Почему-то в диспечере задач висит процесс exel.exe после запуска из Планировщика задач, хотя на экране никаких окон нет. А при запуске вручную процесса не остается. Наверное глюк с Планировщика...
...
Рейтинг: 0 / 0
09.10.2015, 18:42
    #39073246
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск екселя с макросами, проблема в его самозакрытии
Application.Quit сделал?
...
Рейтинг: 0 / 0
09.10.2015, 18:42
    #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
09.10.2015, 19:01
    #39073266
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск екселя с макросами, проблема в его самозакрытии
Руслан7575close а не выходну так. Ты не закрываешь эксель, и потом удивляешься, что он висит в процессах.
...
Рейтинг: 0 / 0
09.10.2015, 19:50
    #39073293
Руслан7575
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск екселя с макросами, проблема в его самозакрытии
Shocker.Pro,

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

OtherWorkbook.Application.Quit

ThisWorkbook.Application.Quit
        End Sub



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

ThisWorkbook.Application.Quit

Application у тебя один, не надо его два раза закрывать, может оттого и глюк
...
Рейтинг: 0 / 0
10.10.2015, 12:00
    #39073467
Руслан7575
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск екселя с макросами, проблема в его самозакрытии
Shocker.Pro,
С какого фига вылазит фэн ридер 11, вообще не понятно.
...
Рейтинг: 0 / 0
12.10.2015, 22:18
    #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
12.10.2015, 23:00
    #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
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запуск екселя с макросами, проблема в его самозакрытии / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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