|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
Добрый день, товарищи. Вот и чукча стал писателем :-) Столкнулся с совершенно непонятным для себя. Маленькая преамбула: Была написана некая надстройка для Excel, которая размещает 2 кнопки в ленту сверху. Кнопки в свою очередь генерируют 2 письма, которые заполняются и выводятся на экран. Все работает, все прекрасно. Надстройка с шаблоном письма лежит в сетевой папке, сама надстройка установлена интересующимся пользователям. А вот теперь суть: появилось несколько новых пользователей, у которых не заполняется шапка письма (т.е. адресат (.To), тема (.Subject) остаются пустные), хотя если расставить брэйкпоинты - сама информация о теме и адресате есть. А тело письма заполняется. Иными словами надстройка одна и таже, шаблон письма один и тот же, разные только компьютеры. На большинстве работает все, на некоторых только замена в теле письма. Прошу толкнуть на путь истинный, т.к. я что-то даже не знаю куда посмотреть. На всякий случай кусок некрасивого кода прилагаю. Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2016, 11:11 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
dred_fk, что такое ra и откуда оно берется? И где записаны сами значения адресов и прочее? Это активный лист? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2016, 13:34 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5.
Соответственно работаем с активным листом. Прошу прощения, что не указал сразу. На моем и еще кучке других компьютеров работает абсолютно все. Но сейчас появились 2-3 компа, где: .To = Cells(ra.Row, 48) отрабатывает (и по брейкпоинтам на cells значение выводит корректное), но при открытии письма заполнено все, кроме .To и .Subject. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2016, 14:08 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
dred_fk, я так и не увидел ответа на вопрос. Откуда берется ra? Где присвоение значения, то бишь диапазона? Чтобы найти ошибку - уберите On Error Resume Next из кода - он там явно есть. Тогда Вам выбьет в ошибку на строке, которая её генерирует. Больше сказать нечего по тем хилым обрывкам кода, которые Вы выкидываете в форум. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2016, 15:32 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
dred_fk.To = Cells(ra.Row, 48) Полностью квалифицируйте коллекцию Cells. The_PristЧтобы найти ошибку - уберите On Error Resume Next из кода А ещё в рантайме вываливайте все проблемные переменные в отладочный файл - стопудово они пустые. рантайм - это не трассировка. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2016, 15:47 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
ra - активная ячейка. Чуть выше же написано "Set ra = activecell" или я что-то не так понимаю? Прошу прощения, что не сразу весь код выложил. По ошибке подумал, что зря захламлял бы. Весь sub ниже: Код: vbnet 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
К сожалению прямо сейчас протестировать без On Error Resume Next не получится - тот человек, у которого такой баг, уже ушел. А на моем компьютере ошибки нет... Завтра утром обязательно проверю. Спасибо за этот совет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2016, 15:52 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
dred_fk, теоретически все выглядит более-менее по рабочему. Единственный момент: где расположен код? Может в модуле какого-то конкретного листа? Что будет, если записывать обращение к ячейкам так: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2016, 16:35 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
Да я и говорю, что везде работает, а на нескольких компах "частично" :-(( Код расположен в модуле надстройки. SendEmail.xla: module1.Send_Email_1. Т.е. без привязки ни к конкретному листу, ни к конкретной книге. Обязательно попробую утром Вашим методом обратиться к ячейкам. И без On Error... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2016, 16:45 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
dred_fkКод расположен в модуле надстройки. SendEmail.xla: module1.Send_Email_1. Т.е. без привязки ни к конкретному листу, ни к конкретной книге.Тогда я уже говорил: AkinaПолностью квалифицируйте коллекцию Cells. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2016, 17:12 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
AkinaПолностью квалифицируйте коллекцию Cells. Спасибо, я почитаю и попробую. К сожалению в VBA я всего месяц как, по этому я с гуглом кодю :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2016, 17:28 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
Чего там читать? Workbooks("имя книги").Worksheets("имя листа").Cells(...) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2016, 17:29 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
не выйдет. Имя книги и имя листа разные. Все же открытая книга и текущий лист. Но спасибо в том числе за теоретическую часть знаний :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2016, 17:46 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
Ну, тогда варианты-то остаются лихие: смотрите защиту листа, параметры ячеек и все в этом духе. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2016, 21:04 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
Но разве тогда на остальных компьютерах бы все работало? Просто лист частично защищен от изменений (некоторые поля). Но это лучше не снимать, иначе умные тетеньки наворотят такого... :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2016, 09:23 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
dred_fkПросто лист частично защищен от измененийВ зависимости от версии Excel это может мешать. Перед считыванием данных настоятельно рекомендую защиту снимать, а после отправки ставить обратно. Хотя бы попробуйте лично на этих ПК снять защиту вручную и посмотреть результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2016, 11:11 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
Извиняюсь, что все так затянулось. В общем я проверил работоспособность всех советов =-) И ничего меня не спасло. Но у меня есть подробности. Во первых я узнал, что дело почему-то не в машине, на что грешил я. А в учетке. Как она связана - я пока не знаю, но под определенной учеткой вот такая свистопляска. Хотя может и в машинах тоже. Не знаю :-) К сожалению у меня прав даже на RDP нет... Короче не важно. А важно во вторых. А именно ошибка! Картинку прилагаю. Как понимаю, что-то не так с объектом MailItem в моем коде. Ошибка есть - уже хорошо. Пойду гуглить. Спасибо за все советы, но особенно за подсказку с OnError! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2016, 13:24 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
dred_fk, такое может наблюдаться, если Outlook для пользователя установлен криво. Странно, что при этом к Outlook вообще подключение прошло. Обычно это связано с тем, что в системе не зарегистрированы библиотеки Outlook нужным образом. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2016, 18:21 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
The_Prist, очередной раз большое спасибо за совет. Пойду админам нажалуюсь, чтобы переставили. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2016, 09:34 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
dred_fk... не заполняется шапка письма (т.е. адресат (.To), тема (.Subject) остаются пустные) Ошибка в том, что IsNull(Cells(ra.Row, 48)) всегда равно False, так как значение ячейки не может быть Null. Для пустой ячейки значение равно Empty, но как IsNull(Empty)=False, так и IsNull("abc")=False Вместо IsNull() везде в коде корректнее использовать IsEmpty(). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2016, 21:25 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
ZVI, не согласен по той простой причине, что это работает :-) Возможно не корректно (и я попробую изменить на isempty), но работает ровно так, как я этого и ожидал. Да и не заполняет тогда, когда значение 100% есть и на этой же строчке этой же эксельки у меня все работает. Что касается переустановки аутлука, то админы занимаются этим. Долго что-то... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2016, 11:18 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
dred_fkZVI, не согласен по той простой причине, что это работает :-) То, что я написал, легко же проверить: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
[/SRC] Результат False независимо от того, пустая ячейка или нет. Меняйте IsNull на IsEmpty :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2016, 11:56 |
|
Excel + Outlook. Ошибка в генерации письма
|
|||
---|---|---|---|
#18+
Убрал лишние тэги в коде: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2016, 11:59 |
|
|
start [/forum/topic.php?fid=60&fpage=20&tid=2155439]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 339ms |
total: | 475ms |
0 / 0 |