比如有一个字符串string1: string1=AED_869_CR_01_MZ_W_35516_101.dwg'如何把".dwg"前的10个字符去掉,即要得到:
string1=AED_869_CR_01_MZ_W.dwg

解决方案 »

  1.   

    LEFT(string1, InStrRev(string1, ".")-1)
      

  2.   

    要都是.dwg的话:
    Left(string1, Len(string1) - 14) & ".dwg"如果后面不是".dwg"的话,或者.dwg不是在末尾,那就要用函数先取.dwg的位置,再截取。
      

  3.   

    string1=left(string1,instr(1,string1,".dwg")-11) & ".dwg"
      

  4.   

    或:
    string1=left(string1,instrrev(string1,".dwg")-11) & ".dwg"
      

  5.   


    .dwg只存在于字符串末尾,简单说,这个字符串表示的是文件名,类似123.doc,aaa.exe,所以,.dwg只是文件名后缀,但不是唯一的后缀名
      

  6.   

    string1 = "AED_869_CR_01_MZ_W_35516_101.dwg"
    nn = InStrRev(LCase(string1), ".dwg")
    If nn <= 10 + 1 Then
       string1 = ".dwg"
    Else
       string1 = Left(string1, nn - 10 - 1) + Right(string1, Len(string1) - nn + 1)End If
    MsgBox string1
      

  7.   


    string1 = "AED_869_CR_01_MZ_W_35516_101.dwg"
    nn = InStrRev(LCase(string1), ".")
    If nn <= 10 + 1 Then
       string1 = Right(string1, Len(string1) - nn + 1)
    Else
       string1 = Left(string1, nn - 10 - 1) + Right(string1, Len(string1) - nn + 1)End If
    MsgBox string1
      

  8.   


    还是找“.“的位置然后截取比较好,避免“.docx”之类的。上面有参考代码了,就不贴了。
      

  9.   


    Private Sub Form_Load()
        Dim tmp As String
        Dim str As String
        
        tmp = ".dwg"    '文件后缀
        str = "AED_869_CR_01_MZ_W_35516_101.dwg"
        If Len(str) <= 10 + Len(tmp) Then
            MsgBox "文件名不足10位"
        Else
            str = Left(str, Len(str) - InStrRev(str, tmp, 1) - Len(tmp) - 10) & tmp
        End If
        Debug.Print str
    End Sub
      

  10.   

    都是去掉10个字符?    dim string1 as string
        dim a
        
        string1="AED_869_CR_01_MZ_W_35516_101.dwg"    a=split(string1,".")
        if len(a(0))>10 then a(0)=mid(a(0),1,len(a(0))-10)
        string1=join(a,".")
        msgbox string1
      

  11.   

       dim string1 as string
        dim a
        
        string1="AED_869_CR_01_MZ_W_35516_101.dwg"    a=split(string1,".")
        if len(a(0))>10 then a(0)=mid(a(0),1,len(a(0))-10)
        string1=join(a,".")
        msgbox string1
      

  12.   

    string1 = Left(string1, Len(string1) - 14) & Right(string1, 4)
      

  13.   

    Private Sub Command1_Click()
        Dim str1 As String
        Dim str2 As String
        
        str1 = "AED_869_CR_01_MZ_W_35516_101.dwg"
        str2 = StrReverse(Left(StrReverse(str1), InStr(StrReverse(str1), ".")) + Mid(StrReverse(str1), InStr(StrReverse(str1), ".") + 11, Len(str1)))
        Debug.Print str2
        
    End Sub