各位高手帮看看啊,我想实现一运行就打开串口,如果串口COM值不对,只要该一下就行,还是打开串口    CommandButton7是个退出按钮啊,老是出现 “运行时错误8005 端口已打开”我每次都关了Private Sub UserForm_Initialize()
 
   MSComm1.Settings = "4800,N,8,1"
 
   MSComm1.InputLen = 0        '设置或返回一次从接收缓冲区中读取字节数,0表示一次读取所有数据
    MSComm1.InBufferSize = 512
  MSComm1.InBufferCount = 0
   MSComm1.OutBufferCount = 0
  MSComm1.RThreshold = 1
   MSComm1.InputMode = comInputModeBinary
    ActiveCell(1, 1).Select
       MSComm1.CommPort = UserForm2.ComboBox1.ListIndex + 1
     If MSComm1.PortOpen = False Then
   MSComm1.PortOpen = True
   End If
 
End SubPrivate Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
UserForm2.Show
End Sub
Private Sub UserForm_Initialize()
Dim reg
    
   With ComboBox1
    .AddItem "1"
    .AddItem "2"
    .AddItem "3"
    .AddItem "4"
    .AddItem "5"
    .AddItem "6"
  End With
      Set reg = CreateObject("wscript.Shell")
   ComboBox1.ListIndex = reg.regread("HKEY_CURRENT_USER\设置\ComboBox1") '读取注册表End Sub
Private Sub CommandButton7_Click()
ActiveWorkbook.Save
'Set MSComm1 = Nothing
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
Unload Me
End Sub下面是另一个对话框的代码Private Sub ComboBox1_Click()
UserForm1.MSComm1.CommPort = ComboBox1.ListIndex + 1
On Error GoTo Delerr: If UserForm1.MSComm1.PortOpen = False Then
    UserForm1.MSComm1.PortOpen = True
   End If
Set reg = CreateObject("wscript.Shell")
reg.regwrite "HKEY_CURRENT_USER\设置\ComboBox1", ComboBox1.ListIndex
 Exit Sub
Delerr:
If UserForm1.MSComm1.PortOpen = True Then
    UserForm1.MSComm1.PortOpen = False
   End If
End Sub请各位帮帮看看怎么改啊,急啊