|
▼にしもり さん:
>お陰さまでここまで書けました。
>だた、止まってしまいます。
>> ws1.Cells(m, n).Value = Me.TextBox1.Value '<=with ブロック変数なしと出てここで止まってしまいます
このエラーは、ws1 になにもセットされていないのが理由でしょうね。
そのほかに、先に申し上げた留意点、コンボボックスが選ばれていない場合
ComboBox1.ListIndexが -1 になっていて、これはこれで、ws1 に値が入っていても
別のエラーになりますね。
ユーザーフォームモジュールでPublic変数の宣言をしているところ他、
ちょっと添削してみました。
Option Explicit
Dim ws1 As Worksheet
Private Sub UserForm_Initialize()
Set ws1 = Sheets("Sheet1") 'ws1ってSheet1なんですよね?
ComboBox1.RowSource = ws1.Range("b5:b31").Address(external:=True)
End Sub
Private Sub CommandButton1_Click()
Dim m As Long
Dim n As Long
With ComboBox1
If .ListIndex < 0 Then
MsgBox "まだ値が選択されていません"
Exit Sub
End If
m = .ListIndex + 5
n = Cells(.ListIndex + 5, ws1.Columns.Count).End(xlToLeft).Column
If n < 7 Then
n = 7
Else
n = n + 1
End If
ws1.Cells(m, n).Value = TextBox1.Value
End With
End Sub
Private Sub CommandButton2_Click()
ComboBox1.Value = "" 'False は具合悪いでしょ?
TextBox1.Value = ""
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Set ws1 = Nothing
End Sub
|
|