Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 7
1

Макрос в Excel требует файл Outlook.pst

06.02.2013, 13:26. Просмотров 1338. Ответов 4
Метки нет (Все метки)

Всем привет.
В очередной раз борюсь с багами и непонятками детищ мелкософта. На этот раз проблема следующая:

В книге Экселя есть несколько листов.
"Указатели" (если так можно сказать для VBA) на первый и второй листы записаны в переменные. Далее куски цитат кода из модуля (с пропусками неважных моментов):
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Option Explicit
Option Base 0
Option Compare Binary
...
Public cfg_configSheet, cfg_configSheet2 As Long
Public mainWB As Workbook
Public cfgSheet, cfgSheet2 As Worksheet 'cfgSheet - 1st, cfgSheet2 - 2nd
...
Sub InitVars()
  ...
  cfg_configSheet = 1
  cfg_configSheet2 = 2
  ...
  Set mainWB = Application.ThisWorkbook 'pointer to WorkBook
  Set cfgSheet = mainWB.Sheets(cfg_configSheet) 'pointer to 1st sheet
  Set cfgSheet2 = mainWB.Sheets(cfg_configSheet2) 'pointer to 2nd sheet
  ...
  MsgBox (cfgSheet.CheckBox1.Value) 'dbg
  MsgBox (cfgSheet2.CheckBox1.Value) 'dbg
  ...
end sub
На первый лист вставлен с панели "Элементы Управления" элемент типа CheckBox.
На второй лист вставлен такое же элемент.

Сразу говорю, при запуске и установке нужных брэйкпоинтов и закоментировании двух строк с MsgBox, переменные cfgSheet и cfgSheet2 существуют (смотрю окно watch), их можно открыть (нажав плюсик) и в них есть по одному чекбоксу, добавленному на каждый лист ранее. Чек боксы тоже можно "поизучать". Короче, они существуют при прогоне проги в пошаговом режиме.

Далее 2 прикола от M$:

1) При закоментированых обращениях к чекбоксам, дошёл до брейкпоинта, листы заданы, нажимаю на плюсик напротив cfgSheet, выдаётся окно с ошибкой: "Не удаётся найти файл 'C:\bla-bla-bla\Outlook.pst'. ". Жму ОК, вылезает окно "создание или открытие файла личных папок", в поле "Имя файла" стоит "Outlook.pst". Жму Отмена. Появляется (раскрывается) список под-объектов листа. Вижу там свой чекбокс. Сворачиваю объект cfgSheet.

Открываю cfgSheet2, опять просит файл аутлука. Опять дребедеь, опять вижу нужный чекбокс на втором листе. Обекты существуют значит! Я не глючу.

Теперь прикол номер 2...

2) раскоментирую строку с обращением к чекбоксу второго листа и получаю фигу в виде : "Compile error: Method or data member not found" ... Макрос дальше не идётъ.

Если обращаться только к чекбоксу на первом листе - всё ок. На втором - ошибка.
Что за бред?

Помогите, пожалуйста, может кто встречал такое...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2013, 13:26
Ответы с готовыми решениями:

Подправить макрос отправки задач из Excel в Outlook
Доброго времени суток! Во вложении файл с примером отправки задач в Outlook из Excel. После...

Макрос отправки письма Outlook через Excel с автоприкреплением файла
Добрый день! Есть следующий вопрос: Нужно из Excel 2010 макросом создавать письмо Outlook, в...

Макрос для переноса данных из одного Excel в другой Excel файл
Уважаемые эксперты, очень нужна ваша помощь! Подскажите, пожалуйста, как прописать макрос, который...

Макрос для экспорта из excel файла в excel файл шаблон
здравствуйте. подскажите как написать макрос. есть 1 файл со столбиками : город , дом, квартира,...

4
6666 / 2667 / 497
Регистрация: 19.10.2012
Сообщений: 8,073
06.02.2013, 13:35 2
Без примера не скажу. Но нет ли там листов макрсов/диаграмм?
0
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 7
06.02.2013, 13:50  [ТС] 3
Цитата Сообщение от Hugo121 Посмотреть сообщение
Без примера не скажу. Но нет ли там листов макрсов/диаграмм?
Вопрос не понятен.
На листах нет никаких диаграмм. Только ячейки и по одному чекбоксу на 1-ом и 2-ом листах. На самих листах и в книге никакого кода нету. Код - только в модуле. Если вопрос был про это.

В модуле много кода, чтобы прочесть его надо не менее 5 минут чистого времени. Так что, цитировать его нет желания
Щас попробую сделать с нуля, всё пустое и два чекбокса )))

Добавлено через 7 минут
Цитата Сообщение от Hugo121 Посмотреть сообщение
Без примера не скажу. Но нет ли там листов макрсов/диаграмм?
Вот. Special for you, набрал всё с нуля. Полный код модуля. Кода больше нет. На листе 1 есть чекбокс1, и на втором есть чекбокс 1. Симптомы те же: аутлук и метод/мембер нот фаунд.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Option Explicit
Option Base 0
Option Compare Binary
 
Public cfg_configSheet, cfg_configSheet2 As Long
Public mainWB As Workbook
Public cfgSheet, cfgSheet2 As Worksheet 'cfgSheet - 1st, cfgSheet2 - 2nd
 
Sub InitVars()
 
  cfg_configSheet = 1
  cfg_configSheet2 = 2
 
  Set mainWB = Application.ThisWorkbook 'pointer to WorkBook
  Set cfgSheet = mainWB.Sheets(cfg_configSheet) 'pointer to 1st sheet
  Set cfgSheet2 = mainWB.Sheets(cfg_configSheet2) 'pointer to 2nd sheet
 
  MsgBox (cfgSheet.CheckBox1.Value) 'dbg
  'MsgBox (cfgSheet2.CheckBox1.Value) 'dbg
 
End Sub
0
1248 / 407 / 51
Регистрация: 14.06.2009
Сообщений: 628
06.02.2013, 14:38 4
cfgSheet - тип Variant
cfgSheet2 - тип WorkSheet
Если поменять седьмую строку на
Visual Basic
1
Public cfgSheet, cfgSheet2   'cfgSheet - 1st, cfgSheet2 - 2nd
то будет обращение к чекбоксу и на втором листе.
У объекта типа WorkSheet ведь нет метода или свойства checkbox. Видимо, дело в этом.
0
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 7
06.02.2013, 14:44  [ТС] 5
Огромнейшее спасибо!!!

Не ожидал такой подставы от VBA
Ежели смотреть watch-окно, и тыкать там объекты, то по здравой логике, под-объект CheckBox1 был у обоих объектов листа! Видимо, в M$ не дружат со здравой логикой. Уже в который раз убеждаюсь в их косоруких программерах...

Еще раз благодарю за помощь
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2013, 14:44

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Сформировать макрос по выгрузке данных из файла excel в файл txt
Здравствуйте!!!Срочно!!! Помогите пожалуйста сформировать макрос по выгрузке данных из файла excel...

Возможно ли написанный в Excel макрос создать как отдельный файл *.exe
Добрый день! Такой вопрос, подскажите пожалуйста, возможно ли написанный в Excel макрос создать...

Написать макрос VBA для копирования и упорядочивания данных в другой файл Excel
Как реализовать задачу? need help:-|. Есть список людей с ФИО, в нем напротив каждого человека есть...

Макрос для нарезки файлов по условию требует доработки
Привет, всем!!! Ребят нашел макрос, который нарезает файл с условием, при этом в каждом файле...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.