Страницы: 1
RSS
Ошибка "method range of object _global failed"
 
Заранее извиняюсь за тупость моего вопроса, но VBA занимаюсь 2-ю неделю, без литературы + времени на тщательное изучение нет, поэтому все же осмелюсь спросить:  
 
у меня есть макрос, в котором используется код:  
 
Range("B:B,C:C,G:G,H:H,I:I").Select  
Selection.Delete Shift:=xlToLeft  
 
До тех пор, пока работал в пределах одной процедуры - все было нормально. Прикрутил форму, для того чтобы было удобнее брать данные для переменных - начала выскакивать ошибка.  
 
Как побороть данную штуку? можно краткий ликбез, как правильно использовать переменные и методы при применении не одной процедуры, а нескольких? Спасибо.
 
{quote}{login=knacker}{date=16.02.2009 07:24}{thema=Ошибка "method range of object _global failed"}{post} + времени на тщательное изучение нет, поэтому    
можно краткий ликбез, как правильно использовать переменные и методы при применении не одной процедуры, а нескольких? Спасибо.{/post}{/quote}  
 
Как раз все эти методы описываются именно в той литературе, на изучение которой у Вас нет времени. А если у Вас нет времени на её изучение, то у людей на форуме тоже как минимум "нет времени" на то, чтобы эту литературу перепечатывать.  
Хотите чтобы помогли исправить ошибку - опишите поподробнее где и как и после чего выскакивает ошибка, а лучше приложите файл.
 
{quote}{login=knacker}{date=16.02.2009 07:24}{thema=Ошибка "method range of object _global failed"}{post}Как побороть данную штуку? можно краткий ликбез, как правильно использовать переменные и методы при применении не одной процедуры, а нескольких?{/post}{/quote}Используя обращение к Range без указания листа (и книги) Вы получите эту ошибку, если, например, в данный момент будет активным лист диаграммы.  
 
Если вдруг у Вас Excel 2000, то рекомендуется писать так:  
 
 With ThisWorkbook.Sheets("Лист1")  
   'ThisWorkbook - книга в которой макрос  
   myArray = "B:B, C:C, G:G, H:H, I:I" 'совет про это  
   .Parent.Activate: .Activate  
   .Range(myArray).Delete xlToLeft  
 End With
 
Добрый день!  
 
Возникла следующая проблема - у части пользователей при использовании файла с макросом выскакивает ошибка subscript out of range. У большей части все работает нормально. Проблема: надо не переписать файл (он написан старшим коллегой и исправлению не подлежит, хотя написан жутко криво), а устранить ошибку в настройках компьютера (или самого Excel?) у пользователей, у которых код глючит.  
 
Код с ошибкой - в приложенном файле. Ругается на строку Application (хотя массивом там и не пахнет и все файлы, на которых ссылается код, написаны корректно и доступны)  
 
Подскажите, что это может быть и куда копать?  
 
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
{quote}{login=The_Prist}{date=03.03.2011 02:22}{thema=}{post}Какие общие признаки на компах с ошибкой? Может версия Excel?  
И не мешало бы написать на какой именно строке ошибка. Уж очень не хочется ковырять весь код скрупулезно для отлова строки с ошибкой(которую Вы можете указать нам) и уж тем более не хочется искать того, у кого данный код не заработает. {/post}{/quote}
 
{quote}{login=The_Prist}{date=03.03.2011 02:22}{thema=}{post}Какие общие признаки на компах с ошибкой? Может версия Excel?  
И не мешало бы написать на какой именно строке ошибка. Уж очень не хочется ковырять весь код скрупулезно для отлова строки с ошибкой(которую Вы можете указать нам) и уж тем более не хочется искать того, у кого данный код не заработает. {/post}{/quote}  
 
 
На всех компах - Excel 2003, windows xp, настройки стандартные - разделитель точка.  
 
Глючная строка в коде выделена комментариями, это - Application.Workbooks("KO").Worksheets("total data").Activate
 
Ой, извините, недооценила размер  
 
Но пожалуйста, почитайте внимательнее вопрос.  
То, что вы описываете - ошибка в коде,  т.е.не может быть пользователей, у которых он бы работал корректно.  
 
Кроме того, причем здесь лист total в этой рабочей книге и лист total data (существующий, все названия правильные) в другой книге, которую макрос открывает?  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
Спасибо огромное!  
 
точно, в дебагере сразу перестал ругаться
Страницы: 1
Читают тему
Наверх