|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
08.10.2008, 15:24 | #1 |
Новичок
Джуниор
Регистрация: 08.10.2008
Сообщений: 2
|
Ошибка 1004
Такой вопрос: внизу приведен текст программы, которая считывает значения из одних ячеек и вписывает их в примечания для других. Вернее, должна так делать . Однако в отмеченном месте выскакивает ошибка 1004. Причем три столбика она создает нормально, потом еще в три (т.е. в 5, 6, 7) вписывает значения 3-го столбца, а потом повисает. Кто-нибудь подскажет, что именно там не так?
Sub Comment() 'On Error Resume Next Dim M1(27) M1(1) = "D" M1(2) = "E" M1(3) = "F" M1(4) = "G" M1(5) = "H" M1(6) = "I" M1(7) = "G" M1(8) = "K" M1(9) = "L" M1(10) = "M" M1(11) = "N" M1(12) = "O" M1(13) = "P" M1(14) = "Q" M1(15) = "R" M1(16) = "S" M1(17) = "T" M1(18) = "U" M1(19) = "V" M1(20) = "W" M1(21) = "X" M1(22) = "Y" M1(23) = "Z" M1(24) = "AA" M1(25) = "AB" M1(26) = "AC" M1(27) = "AD" Dim M2(27) M2(1) = "AG" M2(2) = "AH" M2(3) = "AI" M2(4) = "AJ" M2(5) = "AK" M2(6) = "AL" M2(7) = "AM" M2(8) = "AN" M2(9) = "AO" M2(10) = "AP" M2(11) = "AQ" M2(12) = "AR" M2(13) = "AS" M2(14) = "AT" M2(15) = "AU" M2(16) = "AV" M2(17) = "AW" M2(18) = "AX" M2(19) = "AY" M2(20) = "AZ" M2(21) = "BA" M2(22) = "BB" M2(23) = "BC" M2(24) = "BD" M2(25) = "BE" M2(26) = "BF" M2(27) = "BG" Dim x, y, z1, z2 As Integer Dim t As String z1 = 0 For z2 = 1 To 27 x = 190 y = 94 z1 = z1 + 1 Do While y < 114 y = y + 1 t = Range(M2(z2) & y) x = x + 1 Range(M1(z1) & x).AddComment Range(M1(z1) & x).Comment.Visible = False Range(M1(z1) & x).Comment.Text Text:=t Loop Next z2 End Sub |
08.10.2008, 19:24 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Причина - ошибка в коде:
... M1(6) = "I" M1(7) = "G" M1(8) = "K" ... Правильно будет: M1(6) = "I" M1(7) = "J" M1(8) = "K" Ошибка 1004 возникала при повторной попытке записи комментария в ячейку G191, в которой уже был комментарий. Чтобы её избежать, надо перед добавлением комментария к ячейке выполнять проверку: если ли в ней уже комментарии или нет. Удалить комментарии можно, например, таким способом: Код:
Кроме того, конструкцию Range(M1(z1) & x).AddComment Range(M1(z1) & x).Comment.Text Text:=t можно заменить на Range(M1(z1) & x).AddComment t
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 08.10.2008 в 19:29. |
08.10.2008, 22:15 | #3 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
вот еще код, минимум обьявлений, гораздо компактнее и читать проще (кажись ячейки я правильно посчитал):
Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
09.10.2008, 11:13 | #4 |
Новичок
Джуниор
Регистрация: 08.10.2008
Сообщений: 2
|
Благадарю покорно! Заработался!Два раза написать "G")))) А более компактную запись буду осваивать понемногу)) Я вообще инженер электропривода, а программирую потому что сотрудников не хватает((( Приходится тянуть лямку.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Nero - ошибка драйвера DMA. ошибка CRC | NecRoMat | Софт | 5 | 09.05.2012 01:29 |
Ошибка | Devourer12345 | Microsoft Office Access | 2 | 10.08.2008 20:24 |
Ошибка | Freeman | Общие вопросы C/C++ | 3 | 26.05.2008 19:43 |
Ошибка!! | Blackmore | БД в Delphi | 0 | 10.05.2008 11:43 |
Ошибка | LeoN | Общие вопросы Delphi | 5 | 25.04.2007 11:22 |