【发布时间】:2020-10-11 02:38:50
【问题描述】:
我的 vba 代码是
Public Function notHDD()
Dim m As String
Const test = "WD-WX22AAAAAA"
m = GetHDD
If m <> test Then
notHDD = True
Else
notHDD = False
End If
End Function
Function GetHDD() As String
Dim Wmi As Object, Disks As Object, Disk As Object
Set Wmi = GetObject("winmgmts:{impersonationLevel" & "=impersonate}!root\cimv2")
Set Disks = Wmi.ExecQuery("Select * from Win32_DiskDrive")
For Each Disk In Disks
If Len(Disk.SerialNumber) > Len(GetSerialNumber) Then GetSerialNumber = Disk.SerialNumber
Next
Set Disk = Nothing
Set Disks = Nothing
Set Wmi = Nothing
GetHDD = GetSerialNumber
End Function
Private Sub Workbook_Open()
If notHDD Then
ThisWorkbook.Close
End If
End Sub
为什么这段代码不起作用?
我只想要此操作系统硬盘序列号 WD-WX22AAAAAA 上的 Excel 文件
在除此之外的系统上关闭
【问题讨论】:
-
始终更具体地了解您的代码是如何不工作的?语法错误,编译错误,编译正常但答案错误?
-
@我想被vba锁定,硬盘序列号