Самостоятельные макросы (Microsoft Excel)
Для некоторых макросов вам может потребоваться определить, есть ли способ определить конкретную машину, на которой работает макрос. Например, у вас может быть настольный компьютер с определенным каталогом в D: \ OraNT \ Plus33, а на вашем ноутбуке — каталог в C: \ OraNT \ Plus33. Макрос, конечно, должен определять, какая машина используется, чтобы знать, какой каталог использовать для обработки.
Есть разные способы подойти к этой задаче. Можно создать макрос Excel, который фактически обращается к Windows API и определяет имя компьютера, на котором он работает. Однако такой подход может оказаться весьма сложным.
Более простой способ — просто использовать команду VBA DIR, чтобы определить, где находится нужный каталог. Следующее поможет:
Sub OracleQueries() Dim sTemp As String Dim sGoodPath As String sGoodPath = "D:\OraNT\Plus33\" sTemp = Dir("D:\OraNT\Plus33\nul") If sTemp = "" Then sGoodPath = "C:\OraNT\Plus33\" sTemp = Dir("C:\OraNT\Plus33\nul") End If 'Now have directory information If sTemp <> "" Then 'Process queries using sGoodPath Else MsgBox "Directories not found!" End If End Sub
Обратите внимание, как в этом примере используется функция DIR. Обычно DIR возвращает имя первого файла, который он находит в запрошенном каталоге.
Однако, если каталог пуст, DIR возвращает пустую строку, даже если каталог действительно существует. Поскольку все, что нам нужно сделать, это выяснить, существует ли каталог (а не файлы в нем), необходимо добавить буквы «nul» в конец пути к каталогу, используемого DIR.
Это заставляет DIR возвращать пустую строку, если каталог не находится, или символы «nul», если это так (даже если каталог пуст).
Ближе к концу макроса sTemp будет пустым, если ни один каталог не может быть найден. Если один из них был обнаружен, то sTemp не будет пустым, а sGoodPath будет установлен на имя каталога, которое можно использовать в дальнейшей обработке.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (11576) применим к Microsoft Excel 2007, 2010, 2013 и 2016.
Вы можете найти версию этого совета для более старого интерфейса меню Excel здесь: link: / excel-Self-Aware_Macros [Self-Aware Macros]
.