程序极不规范,缺少层次感。程序有三个问题:1、On Error Resume Next应在FOR之外。2、变量i和j没有定义。3、Err.Number = 0 能否检测到端口打开成功?还有MSComm1.PortOpen属性是否能设置,还是只能返回(我没有试过)。

解决方案 »

  1.   

    没什么语法错误
    for
    if之类的
    但是关于串口的我就不清楚了检查方法,你把串口部分去掉,取而代之的是msgbox i & j或者段点检查
      

  2.   

    此行有错:
    Label1.Caption = "您计算机上的串口数:" &j& "个"
    应为:
    Label1.Caption = "您计算机上的串口数:" & j & "个"整个代码修改如下:
    Private Sub Command1_Click()
    j = 0
    For i = 1 To 16
    MSComm1.CommPort = i
    On Error Resume Next
    MSComm1.PortOpen = True
    If Err.Number = 0 Then
    j = j + 1
    Else
    MSComm1.PortOpen = False
    End If
    Next i
    Label1.Caption = "您计算机上的串口数:" & j & "个"
    End Sub