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第一次可以替换,第二次就不行了!
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;所以只能显示替换一次的记过
'不知道楼主想要哪种结果,自己挑吧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
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个?那替换干吗?