Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13500 / 76738 ←次へ | 前へ→

【68742】Re:取得した値をシートに書きこむには
質問  UO3  - 11/4/13(水) 14:19 -

引用なし
パスワード
   ▼にしもり さん:

>お陰さまでここまで書けました。
>だた、止まってしまいます。

>>  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

0 hits

【68733】取得した値をシートに書きこむには にしもり 11/4/12(火) 18:16 質問
【68734】Re:取得した値をシートに書きこむには UO3 11/4/12(火) 18:39 発言
【68737】Re:取得した値をシートに書きこむには にしもり 11/4/13(水) 12:03 質問
【68738】Re:取得した値をシートに書きこむには にしもり 11/4/13(水) 12:14 発言
【68739】Re:取得した値をシートに書きこむには にしもり 11/4/13(水) 12:30 質問
【68742】Re:取得した値をシートに書きこむには UO3 11/4/13(水) 14:19 質問
【68743】Re:取得した値をシートに書きこむには にしもり 11/4/13(水) 14:51 お礼

13500 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free