Передача переменных объекта из ячеек в (Excel) VBA - PullRequest
0 голосов
/ 25 июня 2018

У меня есть сценарий VBA, который подсчитывает непрочитанные электронные письма в выбранной папке в Outlook.На данный момент имя учетной записи и имя папки жестко запрограммированы в сценарии, но я хотел бы сделать его настраиваемым из одного из листов Excel.

В настоящее время здесь установлена ​​переменная:

Set inboxselect = GetObject(, "Outlook.Application").GetNameSpace("MAPI").Folders("mailbox@companyname.com").Folders("Inbox").Folders("SubInbox")

В идеале я хотел бы иметь лист с именем Config с такими данными:

Account: mailbox@companyname.com
Folder:  Inbox
Subfolder: Subfolder

, а затем ссылаться на это в сценарии VBA, но у меня возникают проблемы с пониманием того, как передать ссылку на ячейку впеременная.Я попытался:

inboxselect = GetObject(, "Outlook.Application").GetNameSpace("MAPI").Folders(Worksheets("Config").Range("B1")).Folders("Inbox").Folders("SubInbox") 

Но это выдает ошибку несоответствия типов.

Может ли кто-нибудь подсказать, как это сделать?

1 Ответ

0 голосов
/ 25 июня 2018

Переменные, которые вы пытаетесь передать в функцию GetObject (), являются строками.

Вы можете использовать именованные ячейки на листе Excel, например, если ячейка A1 содержит имя "mailbox@company.com", котороеУчетная запись ячейки (используйте менеджер имен или просто перезапишите ссылку на ячейку в верхнем левом углу окна.

В vba вы можете затем ссылаться на вашу именованную ячейку, используя

Dim sAccount as String
sAccount = Range("Account").Value
Set inboxselect = GetObject(, "Outlook.Application").GetNameSpace("MAPI").Folders(sAccount).Folders("Inbox").Folders("SubInbox")

Аналогично длядругие переменные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...