Страницы: 1
RSS
Запись значения в другом файле: method range of object global failed
 
Добрый день!
Хочу поставить в другом файле единицу в нужной строке и нужном столбце. Эксель ее ставит, но тут же выдает ошибку "method range of object global failed".
Если вместо единицы просто применить заливку к этой же ячейке, то все нормально, не ругается.
Подскажите, пожалуйста, в чем может быть дело?
 
теперь понимаю, почему служба поддержки интернет-провайдера всегда просит сначала перезагрузить роутер...)
дело может быть в том, что строка или столбец empty, соответственно адреса не существует. Без кода никак..
 
То-то и оно, что код вообще никакой:
Код
Sub test()
Const FnmZS As String = "журнал 3 (2).xlsm"
Const WshZS As String = "журнал"

Workbooks(FnmZS).Worksheets(WshZS).Cells(2182, 322) = 1
End Sub

Так выдает ошибку, хотя единицу на лист записывает. Зато если заменить на
Код
Workbooks(FnmZS).Worksheets(WshZS).Cells(2182, 322).Interior.ColorIndex = 4
то все нормально, ошибки нет и цвет меняется.
Изменено: Алексей - 17.03.2017 19:50:29
 
попробуйте cells(2282,322).value=1
 
Цитата
yozhik написал:
попробуйте cells(2282,322).value=1
Попробовал, не работает.
Оказывается, ошибка не возникает, если лист является активным.
Но я все равно не понимаю, чем этот лист такой особенный, что записывать значения на него можно только предварительно активизировав его...
 
Цитата
Алексей написал:
Оказывается, ошибка не возникает, если лист является активным
А может у Вас отслеживаются события?
ЧТо будет, если так:
Код
Sub test()Const FnmZS As String = "журнал 3 (2).xlsm"
Const WshZS As String = "журнал"
Application.Enableevents = 0
Workbooks(FnmZS).Worksheets(WshZS).Cells(2182, 322) = 1
Application.Enableevents = 1
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Алексей написал: "журнал"
у вас точно есть лист с таким именем? Потому что это зарезервированное имя.

Попробуйте с объектными переменными:
Код
'Const FnmZS As String = "журнал 3 (2).xlsm"
Const WshZS As String = "Лист1"
Set WB = ThisWorkbook
Set SH = WB.Sheets(WshZS)
SH.Cells(1, 1) = 1
 
Цитата
The_Prist написал: А может у Вас отслеживаются события?
В точку, спасибо! Событий там много отслеживается, EnableEvents помогло.
И это как раз объясняет, почему ругается после простановки единицы, а не до.
Изменено: Алексей - 17.03.2017 20:40:23
 
Цитата
Jungl написал:
у вас точно есть лист с таким именем?
Вы правы, на самом деле и лист и файл называется "журнал суброгации", я просто немного сократил при переносе.  
Изменено: Алексей - 17.03.2017 20:56:18
Страницы: 1
Наверх