JONTHEPOPE 发表于 2022-7-6 14:55:51

“快速信息”

有人能给我一些建议吗
我似乎对then声明有问题
 

'option Explicit
Sub Filesize()
Dim Mysize
Dim Sysvar1_Sysvar2
Dim sdimode As Integer
Dim mode As String
Dim preferences As AcadPreferences
Dim CurrActiveProfile As String
Dim MyStr
If (ThisDrawing.FullName) = "" Then MsgBox " Please save drawing first, Thanks" Else
sysvar1 = "filedia"
sysvar2 = "cmddia"
sysvar3 = "_pkser"
sysvar4 = "ctab"
sysvar5 = "sdi"
sysvar6 = "isolines"
sysvar7 = "isavepercent"
sysvar8 = "locale"
sysvar9 = "psltscale"
sysvar10 = "loginname"
sysvar11 = "visretain"
sdimode = 1
Then
mode = "single (SDI)"
Else
mode = "multiple (MDI)"
End If
Set preferences = ThisDrawing.Appication_preferences
csrrActiveProfile = preferences.Profiles.ActiveProfile
Mysize = FileLen(ThisDrawing.FullName)
MyStr = MyStr & ThisDrawing.FullName & Chr(10)
MyStr = MyStr & Chr(10) & "filesize: " & "bytes" & Chr(10)
MyStr = MyStr & " Abimstyle: " & ThisDrawing.ActiveDimStyle.Name & Chr(10)
MyStr = MyStr & " Atextstyle: " & ThisDrawing.ActiveDimStyle.Name & Chr(10)
MyStr = MyStr & " CurrentLayer: " & ThisDrawing.ActiveDimStyle.Name & Chr(10)
MyStr = MyStr & " A Linetype: " & ThisDrawing.ActiveDimStyle.Name & Chr(10)
MyStr = MyStr & " A Current Profile: " & ThisDrawing.ActiveProfile & Chr(10)
MyStr = MyStr & "Current Tab: " & (ThisDrawing.GetVariable(sysvar4)) & Chr(10)
MyStr = MyStr & "Current Tab: " & (ThisDrawing.GetVariable(sysvar10)) & Chr(10)
MyStr = MyStr & (sysvar2):
MyStr = MyStr & (sysvar1):
MyStr = MyStr & (sysvar6):
MyStr = MyStr & (sysvar7):
MyStr = MyStr & (sysvar9):
MyStr = MyStr & (ThisDrawing.GetVariable(sysvar2)) & Chr(10)
MyStr = MyStr & (ThisDrawing.GetVariable(sysvar1)) & Chr(10)
MyStr = MyStr & (ThisDrawing.GetVariable(sysvar6)) & Chr(10)
MyStr = MyStr & (ThisDrawing.GetVariable(sysvar7)) & Chr(10)
MyStr = MyStr & (ThisDrawing.GetVariable(sysvar9)) & Chr(10)
MyStr = MyStr & (ThisDrawing.GetVariable(sysvar2)) & Chr(10)
MyStr = MyStr & Chr(10)
MyStr = MyStr & (sysvar2) & (ThisDrawing.GetVariable(sysvar2)) & Chr(10)
MyStr = MyStr & "User Blocks counted: " & (ThisDrawing.Blocks.Count) - 3 & Chr(10)
MyStr = MyStr & "Groups counted: " & (ThisDrawing.Blocks.Count) & Chr(10)
MyStr = MyStr & Chr(10)
MyStr = MyStr & "AutoCAD document mode: " & Chr(10)
MyStr = MyStr & "AutoCAD serial number: " & (ThisDrawing.GetVariable(sysvar3)) & Chr(10)
MyStr = MyStr & "AC ISO language: " & (ThisDrawing.GetVariable(sysvar8)) & Chr(10)
MyStr = MyStr & "Logged as: " & (ThisDrawing.GetVariable(sysvar10)) & Chr(10)
MsgBox MyStr, vbInformation, "Quickinfo"
End If
End Sub

dbroada 发表于 2022-7-6 15:20:23

在其他语句之前,您有2个THEN语句

JONTHEPOPE 发表于 2022-7-6 15:38:11

谢谢DAVE

'option Explicit
Sub Filesize()
Dim Mysize
Dim Sysvar1_Sysvar2
Dim sdimode As Integer
Dim mode As String
Dim preferences As AcadPreferences
Dim CurrActiveProfile As String
Dim MyStr
If (ThisDrawing.FullName) = "" Then MsgBox " Please save drawing first, Thanks"
Sysvar1 = "filedia"
sysvar2 = "cmddia"
sysvar3 = "_pkser"
sysvar4 = "ctab"
sysvar5 = "sdi"
sysvar6 = "isolines"
sysvar7 = "isavepercent"
sysvar8 = "locale"
sysvar9 = "psltscale"
sysvar10 = "loginname"
sysvar11 = "visretain"
sdimode = 1
mode = "single (SDI)"
mode = "multiple (MDI)"
Set preferences = ThisDrawing.Application.preferences
CurrActiveProfile = preferences.Profiles.ActiveProfile
Mysize = FileLen(ThisDrawing.FullName)
MyStr = MyStr & ThisDrawing.FullName & Chr(10)
MyStr = MyStr & Chr(10) & "filesize: " & "bytes" & Chr(10)
MyStr = MyStr & Chr(10) & " Abimstyle: " & ThisDrawing.ActiveDimStyle.Name & Chr(10)
MyStr = MyStr & " Atextstyle: " & ThisDrawing.ActiveTextStyle.Name & Chr(10)
MyStr = MyStr & " CurrentLayer: " & ThisDrawing.ActiveLayer.Name & Chr(10)
MyStr = MyStr & " A Linetype: " & ThisDrawing.ActiveLinetype.Name & Chr(10)
MyStr = MyStr & " Current Profile: " & CurrActiveProfile & Chr(10)
MyStr = MyStr & " Current Tab: " & (ThisDrawing.GetVariable(sysvar4)) & Chr(10)
MyStr = MyStr & " Current Tab: " & (ThisDrawing.GetVariable(sysvar10)) & Chr(10)
MyStr = MyStr & (sysvar2):
MyStr = MyStr & (Sysvar1):
MyStr = MyStr & (sysvar6):
MyStr = MyStr & (sysvar7):
MyStr = MyStr & (sysvar9):
MyStr = MyStr & (ThisDrawing.GetVariable(sysvar2)) & Chr(10)
MyStr = MyStr & (ThisDrawing.GetVariable(Sysvar1)) & Chr(10)
MyStr = MyStr & (ThisDrawing.GetVariable(sysvar6)) & Chr(10)
MyStr = MyStr & (ThisDrawing.GetVariable(sysvar7)) & Chr(10)
MyStr = MyStr & (ThisDrawing.GetVariable(sysvar9)) & Chr(10)
MyStr = MyStr & (ThisDrawing.GetVariable(sysvar2)) & Chr(10)
MyStr = MyStr & Chr(10)
MyStr = MyStr & (sysvar2) & (ThisDrawing.GetVariable(sysvar2)) & Chr(10)
MyStr = MyStr & "User Blocks counted: " & (ThisDrawing.Blocks.Count) - 3 & Chr(10)
MyStr = MyStr & "Groups counted: " & (ThisDrawing.Blocks.Count) & Chr(10)
MyStr = MyStr & Chr(10)
MyStr = MyStr & "AutoCAD document mode: " & Chr(10)
MyStr = MyStr & "AutoCAD serial number: " & (ThisDrawing.GetVariable(sysvar3)) & Chr(10)
MyStr = MyStr & "AC ISO language: " & (ThisDrawing.GetVariable(sysvar8)) & Chr(10)
MyStr = MyStr & "Logged as: " & (ThisDrawing.GetVariable(sysvar10)) & Chr(10)
MsgBox MyStr, vbInformation, "Quickinfo"
End Sub

JONTHEPOPE 发表于 2022-7-6 15:59:04


'Option Explicit
Sub FileSize()
Dim MySize
Dim sysvar1, sysvar2, sysvar3, sysvar4, sysvar5, sysvar6, sysvar7, sysvar8, sysvar9, sysvar10 As String
Dim sdimode As Integer
Dim mode As String
Dim preferences As AcadPreferences
Dim currActiveProfile As String
Dim MyStr
If (ThisDrawing.FullName) = "" Then
MsgBox "Please save drawing first, thanks"
Else
sysvar1 = "filedia"
sysvar2 = "cmddia"
sysvar3 = "_pkser"
sysvar4 = "ctab"
sysvar5 = "sdi"
sysvar6 = "isolines"
sysvar7 = "isavepercent"
sysvar8 = "locale"
sysvar9 = "psltscale"
sysvar10 = "loginname"
sdimode = ThisDrawing.GetVariable(sysvar5)
If sdimode = 1 Then
mode = "single (SDI)"
Else
mode = "multiple (MDI)"
End If
Set preferences = ThisDrawing.Application.preferences
currActiveProfile = preferences.Profiles.ActiveProfile
MySize = FileLen(ThisDrawing.FullName)
MyStr = MyStr & ThisDrawing.FullName & Chr(10) & Chr(10) & "File size: " & MySize & " bytes" & Chr(10)
MyStr = MyStr & Chr(10)
MyStr = MyStr & "Active Dimstyle: " & ThisDrawing.ActiveDimStyle.Name & Chr(10)
MyStr = MyStr & "Active TextStyle: " & ThisDrawing.ActiveTextStyle.Name & Chr(10)
MyStr = MyStr & "Current Layer: " & ThisDrawing.ActiveLayer.Name & Chr(10)
MyStr = MyStr & "Active Linetype: " & ThisDrawing.ActiveLinetype.Name & Chr(10)
MyStr = MyStr & "Current profile: " & currActiveProfile & Chr(10)
MyStr = MyStr & "Current TAB: " & (ThisDrawing.GetVariable(sysvar4)) & Chr(10)
MyStr = MyStr & Chr(10)
MyStr = MyStr & (sysvar2) & " is set to: " & (ThisDrawing.GetVariable(sysvar2)) & Chr(10)
MyStr = MyStr & (sysvar1) & " is set to: " & (ThisDrawing.GetVariable(sysvar1)) & Chr(10)
MyStr = MyStr & (sysvar6) & " is set to: " & (ThisDrawing.GetVariable(sysvar6)) & Chr(10)
MyStr = MyStr & (sysvar7) & " is set to: " & (ThisDrawing.GetVariable(sysvar7)) & Chr(10)
MyStr = MyStr & (sysvar9) & " is set to: " & (ThisDrawing.GetVariable(sysvar9)) & Chr(10)
MyStr = MyStr & Chr(10)
MyStr = MyStr & "User Blocks counted: " & (ThisDrawing.Blocks.Count) - 3 & Chr(10)
MyStr = MyStr & "Groups counted: " & (ThisDrawing.Groups.Count) & Chr(10)
MyStr = MyStr & "Layers counted: " & (ThisDrawing.Layers.Count) & Chr(10)
MyStr = MyStr & Chr(10)
MyStr = MyStr & "AutoCAD document mode: " & mode & Chr(10)
MyStr = MyStr & "AutoCAD Serial Number: " & (ThisDrawing.GetVariable(sysvar3)) & Chr(10)
MyStr = MyStr & "AutoCAD ISO language: " & (ThisDrawing.GetVariable(sysvar8)) & Chr(10)
MyStr = MyStr & "Logged as: " & (ThisDrawing.GetVariable(sysvar10)) & Chr(10)
MsgBox MyStr, vbInformation, "Quick Info"
End If
End Sub

页: [1]
查看完整版本: “快速信息”