Использование BIN2DEC в макросе (Microsoft Excel)
Доступ к большинству функций рабочего листа Excel в VBA можно получить с помощью объекта WorksheetFunction. Однако некоторые функции могут казаться недоступными. Одна из таких функций — BIN2DEC, которая преобразует двоичное значение в десятичное. Причина, по которой он недоступен, заключается в том, что BIN2DEC на самом деле не является функцией рабочего листа Excel — он является частью надстройки Analysis ToolPak.
В этом случае у вас есть два варианта: вы можете либо загрузить VBA-эквивалент пакета Analysis ToolPak, либо вы можете создать свою собственную функцию BIN2DEC в VBA. Чтобы сделать первое, убедитесь, что в Excel вы установили надстройку Analysis ToolPak — VBA. Если его нет в списке доступных надстроек, используйте Windows для поиска файла ATPVBAEN.XLA. (Если вы используете языковую версию Excel, отличную от английской, то часть файла с надписью «EN»
будет отличаться.) Это фактическая надстройка, которую вы хотите включить.
После того, как вы включили надстройку, откройте редактор VBA и выберите Инструменты | Ссылки для отображения диалогового окна Ссылки. Убедитесь, что выбрана ссылка на atpvbaen.xla. Закройте диалоговое окно, и вы сможете использовать BIN2DEC, как любую другую функцию рабочего листа.
Другой вариант — создать свою собственную функцию BIN2DEC. Ниже приведен пример функции, которая принимает строку, содержащую двоичные цифры, и возвращает числовое значение, представляющее десятичное значение этой строки.
Function Bin2Dec(sMyBin As String) As Long Dim x As Integer Dim iLen As Integer iLen = Len(sMyBin) - 1 For x = 0 To iLen Bin2Dec = Bin2Dec + _ Mid(sMyBin, iLen - x + 1, 1) * 2 ^ x Next End Function
Эта функция фактически не имеет тех же ограничений, что и функция рабочего листа BIN2DEC; он будет работать с двоичными числами, содержащими более 10 цифр.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (3063) применим к Microsoft Excel 97, 2000, 2002 и 2003.