Option Base 1
Private Sub Form_Click()
 Dim s(), k As Integer, x As String, Str As String
  s = Array(9, 8, 7, 6, 5, 4, 3, 2, 1)
   For k = 1 To 2
    x = Replace(Join(s, ""), Left(A(k), 1), vbNullString)
    x = Replace(Join(s, ""), Right(A(k), 1), vbNullString)
     For i = 1 To 7
      Str = Str & s(i)
     Next
     Debug.Print Str
     Str = ""
   Next
End Sub备注:A(1)=21,A(2)=31第一次可以替换,第二次就不行了!

解决方案 »

  1.   

    Private Sub Form_Click()
     Dim s(), k As Integer, x As String, Str As String
      s = Array(9, 8, 7, 6, 5, 4, 3, 2, 1)
       For k = 1 To 2
        x = Replace(Join(s, ""), Left(A(k), 1), vbNullString)
        x = Replace(x, Right(A(k), 1), vbNullString)
         For i = 1 To 7
          Str = Str & s(i)
         Next
         Debug.Print Str
         Str = ""
       Next
    End Sub因为还用的是原始的s作为目标string;所以只能显示替换一次的记过
      

  2.   


    '不知道楼主想要哪种结果,自己挑吧Option Explicit
    Option Base 1
    '1
    Private Sub Command1_Click()
        Dim A(2) As String, i As Integer
        Dim s(), k As Integer, x As String, Str As String
        A(1) = "21"
        A(2) = "31"
        s = Array(9, 8, 7, 6, 5, 4, 3, 2, 1)
        x = Join(s, "")
        For k = 1 To 2
           x = Replace(x, Left(A(k), 1), vbNullString)
           x = Replace(x, Right(A(k), 1), vbNullString)
           Debug.Print x
        NextEnd Sub
    '2
    Private Sub Command2_Click()
        Dim A(2) As String, i As Integer
        Dim s(), k As Integer, x As String, Str As String
        A(1) = "21"
        A(2) = "31"
        s = Array(9, 8, 7, 6, 5, 4, 3, 2, 1)
        x = Join(s, "")
        For k = 1 To 2
           x = Replace(x, Left(A(k), 1), vbNullString)
           x = Replace(x, Right(A(k), 1), vbNullString)
           Debug.Print x
           x = Join(s, "")
        NextEnd Sub
      

  3.   


    Option Base 1
    Private Sub Form_Click()
     Dim s(), k As Integer, x As String, Str As String
      s = Array(9, 8, 7, 6, 5, 4, 3, 2, 1)
       For k = 1 To 2
        x = Replace(Join(s, ""), Left(A(k), 1), vbNullString)
        x = Replace(Join(s, ""), Right(A(k), 1), vbNullString)
         For i = 1 To 7
          Str = Str & s(i)
         Next
         Debug.Print Str
         Str = ""
       Next
    End Sub然后调试输出原数组中的1-7个?那替换干吗?