Я разработал модель Excel, которая при ее открытии просматривает серийный номер компьютера, чтобы проверить, разрешено ли использование серийного номера этой модели.Как только серийный номер определен, он сверяется со списком серийных номеров на скрытом листе.Код, который у меня есть, работает на компьютерах с Windows, но когда он работает на булаве, он не работает.Этот код выполняется как часть события Workbook_Open.Когда код в этом событии запускается, если у пользователя есть Mac, он получает сообщение об ошибке, которое гласит следующее:
Ошибка времени выполнения '429':
Компонент ActiveX не может создать объект
В результате этой ошибки лист не может выполнить требуемую проверку, и электронная таблица остается непригодной для использования.
Я тестировал этот код на своем компьютере под управлением Windows 10. Он работает для меня и для многих других пользователей под управлением Windows.Но все пользователи Mac сталкиваются с той же проблемой.Ниже приведен код, который у меня есть, и я ожидаю, что это строка Set fsObj в коде, вызывающая проблему.
Private Sub Workbook_Open()
Dim wb As Workbook: Set wb = ThisWorkbook
Dim obj As New DataObject
Dim txt As String
'Pull Serial Number from Computer
Dim fsObj As Object
Dim drv As Object
Set fsObj = CreateObject("Scripting.FileSystemObject")
Set drv = fsObj.Drives("C")
'Insert Serial Number in a Named Range
Range("SN").Value = Left(Hex(drv.SerialNumber), 4) _
& "-" & Right(Hex(drv.SerialNumber), 4)
End Sub
Я не знал, что может быть другой код, который может понадобиться для извлеченияСерийный номер от Mac.Есть ли способ, с помощью которого я могу определить, является ли это Mac или Windows, а затем на основе этого затем выполнить правильный код в зависимости от ОС пользователя.
Итак, у меня есть пара вопросов, на которые мне нужно ответить.
1) Как определить ОС, чтобы потом можно было запускать соответствующий код ... при условии, что для извлечения серийного номера нужен другой кодс Mac.2) Какой код необходим для извлечения серийного номера машины Mac.
В конце я хочу, чтобы код мог сообщить мне, какой серийный номер машины открыл файл, чтобы я могможно подтвердить серийный номер с помощью серийных номеров, которые у меня есть в списке.