請教各位大大:
VBA中表單內某 Sub
For i = 2 To lastrow1
If Cells(i, 4) = TextName.Text Then
TextBox3.Text = Sheets("學生資料").Cells(i, 6)
TextBox4.Text = Sheets("學生資料").Cells(i, 7)
TextBox5.Text = Sheets("學生資料").Cells(i, 8)
TextBox6.Text = Sheets("學生資料").Cells(i, 9)
endif
next
loop中 當找到第二個 Cells(i, 4)
應如何使 Sheets("學生資料").Cells(i, 6)填入 TextBox7.Text
也就是說如何使 TextBox3.Text 為一個 TextBox(i).Text 來使用
謝謝協助作者: GBKEE 時間: 2010-10-7 08:09
回復 1#yangjie
使用陣列 Ar = Array(TextBox3, TextBox4, TextBox5....)
For i = 2 To lastrow1
If Cells(i, 4) = TextName.Text Then
For ii = 0 To UBound(AR)
AR(ii).Value = Sheets("學生資料").Cells(i, 6 + ii)
Next
End If
Next作者: yangjie 時間: 2010-10-7 09:38
謝謝GBKEE
我的TextBox有80個
陣列 Ar = Array(TextBox3, TextBox4, TextBox5....)
是否一定要寫至TextBox80?
Ar 設定語法
Dim ar(80) as string 是否正確 需要
或是 只要
set Ar = Array(TextBox3, TextBox4, TextBox5....)
或是 只要
Ar = Array(TextBox3, TextBox4, TextBox5....)作者: GBKEE 時間: 2010-10-7 10:45
本帖最後由 GBKEE 於 2010-10-7 11:17 編輯
回復 3#yangjie
Dim Ar(3 To 80) As MSForms.Control, i%
For i = 3 To 80
Set Ar(i) = Controls("TextBox" & i)
Next
For i = 2 To lastrow1
If Cells(i, 4) = TextName.Text Then
For ii = 3 To UBound(AR)
AR(ii).Value = Sheets("學生資料").Cells(i, 6 + ii - 3)
Next
End If
Next
補上另一解法
For i = 2 To lastrow1
If Cells(i, 4) = TextName.Text Then
For ii = 3 To 80
Controls("TextBox" & ii) = Sheets("學生資料").Cells(i, 6 + ii - 3)
Next
End If
Next作者: et5323 時間: 2010-10-7 11:08
再简化点:
Dim i%,ii%
For i = 2 To lastrow1
If Cells(i, 4) = TextName.Text Then
For ii = 3 To 80
Controls("TextBox" & ii).object.Value = Sheets("學生資料").Cells(i, 6 + ii - 3)
Next
End If
Next作者: yangjie 時間: 2010-10-7 17:29