powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Не запускается макрос на другом компьютере
11 сообщений из 11, страница 1 из 1
Не запускается макрос на другом компьютере
    #37354526
Mishel97
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброе время суток!

Написанные макромы работают. Однако проект с этими макросами необходимо разместить на другом компьютере. В данном случае проект необходимо разместить на ноутбуке. На ноутбуке не все макросы срабатывают. Менял MS Office (2003), переустанавливал операционную систему Windows XP, ставил дополнительные библиотеки, менял размер виртуальной памяти – ничего не помогает. На не работающих макросах одна и таже ошибка - Subsript out of range.

Например, форма с таким макросом не запускается. Ошибка в строке запуска формы - Subsript out of range.

Код: plaintext
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.
Private Sub UserForm_Initialize()

Dim intU As Integer, intH As Integer
Dim ListRng As Range
Dim ThisList As Variant
Dim arrZata() As String
Dim arrSata() As String
Dim Cnt As Long
           
    Set ListRng = Range(Workbooks("Книга2").Worksheets("Лист1").Range("A2"), Workbooks("Книга2").Worksheets("Лист1").Range("A2").End(xlDown))
    
           ThisList = ListRng.Value
   
           Cnt = ListRng.Rows.Count
           If Cnt =  65535  Then Let Cnt =  1 
           
          ReDim arrZata( 1  To Cnt,  1  To  2 ) As String
             
           For intH =  1  To Cnt
             arrZata(intH,  1 ) = intH
             arrZata(intH,  2 ) = ThisList(intH,  1 )
          Next intH
             
         ReDim arrSata( 1  To Cnt,  1  To  2 ) As String
              
              For intU =  1  To Cnt
              arrSata(intU,  1 ) = arrZata(intU,  1 )
              arrSata(intU,  2 ) = arrZata(intU,  2 )
              Next intU
              
           ListBox1.List = arrSata

End Sub


Хотя на других компьютерах макрос работает и форма запускается.

Ещё пример не работающего макроса на ноутбуке, но работающего на других компьютерах.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Application.ScreenUpdating = False 
Set wb1 = Workbooks.Open(Filename:=ThisWorkbook.Path & "\Книга2")
ThisWorkbook.Activate 
Set wb2 = Workbooks.Open(Filename:=ThisWorkbook.Path & "\Книга1")

Workbooks("Книга1").Worksheets("Лист1").Activate
ActiveWindow.ScrollRow =  1 
ActiveWindow.ScrollColumn =  1 

Application.ScreenUpdating = True 

Выдаёт ошибку в строке Workbooks("Книга1").Worksheets("Лист1").Activate - Subsript out of range. Эту ошибку можно обойти так:

Код: plaintext
1.
2.
3.
4.
On Error Resume Next
Workbooks("Книга1").Worksheets("Лист1").Activate
ActiveWindow.ScrollRow =  1 
ActiveWindow.ScrollColumn =  1 
On Error GoTo  0 


Однако, теряется функциональность макроса, - Книга1 не всегда открывается с Лист1.

Вопрос – что необходимо сделать, чтобы макросы срабатывали на ноутбуке?
...
Рейтинг: 0 / 0
Не запускается макрос на другом компьютере
    #37354535
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mishel97,

1. Alt-F11
2. Tool-Reference
Есть строки со словом MISSING ?
...
Рейтинг: 0 / 0
Не запускается макрос на другом компьютере
    #37354546
Mishel97
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Reference строки со словом MISSING отсутствуют.
...
Рейтинг: 0 / 0
Не запускается макрос на другом компьютере
    #37354574
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mishel97,

локализация винды и офиса на ноуте отличается от ПК?
...
Рейтинг: 0 / 0
Не запускается макрос на другом компьютере
    #37354594
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуйте так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
'Application.ScreenUpdating = False ' Отключили эран и пытаемся отобразить движеня на нем. 
Set wb1 = Workbooks.Open(Filename:=ThisWorkbook.Path & "\Книга2")
'ThisWorkbook.Activate ' зачем это?
Set wb2 = Workbooks.Open(Filename:=ThisWorkbook.Path & "\Книга1")

wb2.Worksheets("Лист1").Activate
ActiveWindow.ScrollRow =  1 
ActiveWindow.ScrollColumn =  1 

Application.ScreenUpdating = True 'тогда и это не надо.
...
Рейтинг: 0 / 0
Не запускается макрос на другом компьютере
    #37354715
Mishel97
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mds_world,

локализация Windows и MS Office русская на ноутбуке и ПК, вопрос приближает к решению.


kuklp,

Код:

wb2.Worksheets("Лист1").Activate

сработал и, таким образом, сильно поддержал ноутбук. По аналогии в строке:

Set ListRng = Range(Workbooks("Книга2").Worksheets("Лист1").Range("A2"), Workbooks("Книга2").Worksheets("Лист1").Range("A2").End(xlDown))

Workbooks("Книга2") заменил на объект Excel и форма на ноутбуке начала запускаться.

Вывод может быть такой - ПК "удерживает" русскую локализацию MS Office, а ноутбук "не везде удерживает" русскую локализацию, поэтому для ноутбука необходим более универсальный код.

Всем спасибо за участие в теме.

Есть ещё не запуск макроса на другом компьютере, когда сообщение об ошибке поступает не от приложения Excel, а от корпорации MS (MS просит сообщить об этой ошибке). Для этого нужна новая тема.
...
Рейтинг: 0 / 0
Не запускается макрос на другом компьютере
    #37354733
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я ленив по природе, поэтому написал бы:
set sh=wb2.sheets("Лист1")
Set ListRng = sh.Range(sh.[A2], sh.[A2].End(xlDown))
...
Рейтинг: 0 / 0
Не запускается макрос на другом компьютере
    #37355341
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локализация тут ни при чем.
Откажитесь от WorkBook... WorkSheet... Используйте имеющиеся коллекции
Код: plaintext
1.
2.
Option Explicit  0 
...
Sheets( 0 ).Activate
Спасет отца русской демократии...

Впрочем, если нужна активация конкретного листа в книге - то надо задать ему нужное имя, и активацию в скрипте привязывать именно к нему.
...
Рейтинг: 0 / 0
Не запускается макрос на другом компьютере
    #37355382
NullUzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ListBox1.List = WorksheetFunction.Transpose(arrSata)
...
Рейтинг: 0 / 0
Не запускается макрос на другом компьютере
    #37355409
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM
Код: plaintext
Option Explicit  0 
Упс... протрезвел.
Имелось в виду
Код: plaintext
Option Base  0 
...
Рейтинг: 0 / 0
Не запускается макрос на другом компьютере
    #37362183
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mishel97,

авторВыдаёт ошибку в строке Workbooks("Книга1").Worksheets("Лист1").Activate - Subsript out of range. Эту ошибку можно обойти так:

Ошибка возникает потому, что у Вас в книге нет листа с именем "Лист1".
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Не запускается макрос на другом компьютере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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