お世話になっております。ユーザーフォームのコンボボックス(cmbExp1からcmbExp9)を9個ほど設置してDatabaseのI列のリストの最終行(cMaxRowとしました)までの同一のリスト一覧をコンボボックスに表示させたいと思い、下記のコードを記載しましたが、Forで指定された変数は既に使われていますというエラーが出てしまいました。
原因としては他のコンボボックスの設定でFor文を設定してしまっていることや9個のコンボボックスのループの書き方が繰り返しが多く、構文的にエラーが出やすい状態になっているかとは思いますが、エラーの出にくい書き方を教えていただけましたら有難いです。
vba
1 2Private Sub UserForm_Initialize() 3 4'gain the last row 5 Dim cMaxRow As Integer 6 cMaxRow = Cells(Rows.Count, 1).End(xlUp).Row 7 8 'setting initial No. 9 If cMaxRow > 10 Then 10 txtNoDay.Value = Range("A" & cMaxRow).Value + 1 11 End If 12 13 'setting initial date 14 txtDay.Value = Day(Date) 15 txtMonth.Value = Month(Date) 16 txtYear.Value = Year(Date) 17 18 19 'comboBox add name of Maker 20 Dim i As Integer 21 For i = 3 To 5 22 cmbMaker.AddItem Worksheets("Database").Range("A" & i).Value 23 24 25 'comboBox add Category of descriptions for each expense 26 27 For i = 3 To cMaxRow 28 cmbExp1.AddItem Worksheets("Database").Range("I" & i).Value 29 30 31 For i = 3 To cMaxRow 32 cmbExp2.AddItem Worksheets("Database").Range("I" & i).Value 33 34 35 For i = 3 To cMaxRow 36 cmbExp3.AddItem Worksheets("Database").Range("I" & i).Value 37 38 39 For i = 3 To cMaxRow 40 cmbExp4.AddItem Worksheets("Database").Range("I" & i).Value 41 42 43 For i = 3 To cMaxRow 44 cmbExp5.AddItem Worksheets("Database").Range("I" & i).Value 45 46 47 For i = 3 To cMaxRow 48 cmbExp6.AddItem Worksheets("Database").Range("I" & i).Value 49 50 51 For i = 3 To cMaxRow 52 cmbExp7.AddItem Worksheets("Database").Range("I" & i).Value 53 54 55 For i = 3 To cMaxRow 56 cmbExp8.AddItem Worksheets("Database").Range("I" & i).Value 57 58 59 For i = 3 To cMaxRow 60 cmbExp9.AddItem Worksheets("Database").Range("I" & i).Value 61 62 Next i 63 64 65End Sub 66
回答2件
あなたの回答
tips
プレビュー