Имя: Пароль:
1C
1С v8
Excel. макрос падает с ошибкой: "Runtime error 1004: application-defined or object-defined error".
0 Сергей Д
 
11.09.14
15:41
Доброго всем дня
Ваяю отчет на основе Excel-шаблона. В шаблоне используются макросы. В одном макросе идет присвоение имени листу:
ActiveSheet.Name = ActiveSheet.Cells(1,9).Value
Тут макрос падает с ошибкой: "Runtime error 1004: application-defined or object-defined error".
Та же ошибка появляется, если сделать так:
dim s as string
s = ActiveSheet.Cells(1,9).Value
ActiveSheet.Name = s           <--- падает тут
При этом если написать:
ActiveSheet.Name = "1234"
ошибка не возникает.
Что же я делаю не так?
1 piter3
 
11.09.14
15:43
тип значения не?
2 Ёпрст
 
11.09.14
15:44
(0) добавь "_" перед именем, будет работать
3 SUA
 
11.09.14
15:45
есть знатоки гугла =)
http://www.excelworld.ru/forum/10-6943-1
4 Сергей Д
 
11.09.14
15:45
(1) Судя по справке к Excel, WorkSheet.Name "получает или устанавливает СТРОКОВОЕ значение имени".
5 SUA
 
11.09.14
15:45
пустая строка в качестве имени недопустима
6 Сергей Д
 
11.09.14
15:47
(2) Перед каким иенем?
(5) Не пустая. А также отсутствуют листы с таким же иенем.
7 Jaap Vduul
 
11.09.14
15:55
Make sure that:
The name that you type does not exceed 31 characters.
The name does not contain any of the following characters:  :  \  /  ?  *  [  or  ]
You did not leave the name blank.
8 Ёпрст
 
11.09.14
15:57
(6) s = "_"+ActiveSheet.Cells(1,9).Value
ну и проверка на спецсимволы
9 Сергей Д
 
11.09.14
16:00
(7) "Семен Семеныч..." (с) "Бриллиантовая рука".
А ведь вы правы... Там [ и ] были. Убрал - заработало.
Всем большое спасибо за участие.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой