Private   Sub   Command1_Click()   
          Dim   strTemp   As   String   
          strTemp   =   "aslkdjalksj32334j23j"   
          Dim   i   As   Integer   
          For   i   =   1   To   Len(strTemp)   
                  If   IsCommonChar(Mid(strTemp,   i,   1))   =   False   Then   
                          MsgBox   "有非字母或数字的字符"   
                          Exit   Sub   
                  End   If   
          Next   
          MsgBox   "没有非字母或数字的字符"   
            
          strTemp   =   "aslkdja@¥#!¥lksj32334j23j"   
          For   i   =   1   To   Len(strTemp)   
                  If   IsCommonChar(Mid(strTemp,   i,   1))   =   False   Then   
                          MsgBox   "有非字母或数字的字符"   
                          Exit   Sub   
                  End   If   
          Next   
          MsgBox   "没有非字母或数字的字符"   
  End   Sub   
    
  Private   Function   IsCommonChar(strChar   As   String)   As   Boolean   
          If   (Asc(strChar)   >=   48   And   Asc(strChar)   <=   57)   _   
                  Or   (Asc(strChar)   >=   65   And   Asc(strChar)   <=   90)   _   
                  Or   (Asc(strChar)   >=   97   And   Asc(strChar)   <=   122)   Then   
                  IsCommonChar   =   True   
          Else   
                  IsCommonChar   =   False   
          End   If   
  End   Function
以上代码可以判断是否有非字母和数字,如果有,我想得到那些非字母数字的字符,怎么个写法?刚接触VB,大家救救我啊!!

解决方案 »

  1.   

    拿个篮子把它们装起来:)再定义一个字符串变量来做篮子:dim OutStr as string,MidStr as string把你的循环判断过程改一下:        For   i   =   1   To   Len(strTemp)
                    midstr=Mid(strTemp,   i,   1)
                    If   IsCommonChar(midstr)   =   False   Then   
                            outstr=outstr & midstr
                    End   If   
            Nextoutstr里面就是你想要的东西了.
      

  2.   

    For i = 1 To Len(strTemp)
    midstr=Mid(strTemp, i, 1)
    If IsCommonChar(midstr) = False Then
    outstr=outstr & midstr
    End If
    Next