プロが教える店舗&オフィスのセキュリティ対策術

ユーザーファームを2つ作成しました。
そのユーザーフォームのデータを表の最終行に追加をしたいのです。

Range("A65536").End(xlUp).Offset(1,0).select
を使おうと思っていますが、うまくいきません。

どなたか教えてください。

<ユーザーフォーム1>
Private Sub CommandButton1_Click()

Sheet2.Range("H7") = TextBox1
Sheet2.Range("I7") = TextBox2
Sheet2.Range("J7") = TextBox3
Sheet2.Range("K7") = TextBox4
Sheet2.Range("L7") = TextBox5
Sheet2.Range("P7") = TextBox6

If CheckBox1.Value = True Then
Worksheets(2).Range("M7") = "0:30"
Else
Worksheets(2).Range("M7") = "0:00"
End If

If CheckBox2.Value = True Then
Worksheets(2).Range("R7") = "1000"
Else
Worksheets(2).Range("R7") = "0"
End If

If CheckBox3.Value = True Then
Worksheets(2).Range("S7") = "3000"
Else
Worksheets(2).Range("S7") = "0"
End If

If CheckBox4.Value = True Then
Worksheets(2).Range("T7") = "1500"
Else
Worksheets(2).Range("T7") = "0"
End If

Unload Me
End Sub


<ユーザーフォーム2>
Private Sub CommandButton1_Click()

Sheet2.Range("V7") = TextBox1
Sheet2.Range("W7") = TextBox2
Sheet2.Range("X7") = TextBox3

Unload Me
End Sub

A 回答 (2件)

もともとのコードをあまりいじらないように修正してみました。


最終行を select するのではなく、行(Row)を取得しています。

Private Sub CommandButton1_Click()

行 = Sheet2.Range("A65536").End(xlUp).Offset(1).Row

Sheet2.Range("H" & 行) = TextBox1
Sheet2.Range("I" & 行) = TextBox2
Sheet2.Range("J" & 行) = TextBox3
Sheet2.Range("K" & 行) = TextBox4
Sheet2.Range("L" & 行) = TextBox5
Sheet2.Range("P" & 行) = TextBox6

If CheckBox1.Value = True Then
Worksheets(2).Range("M" & 行) = "0:30"
Else
Worksheets(2).Range("M" & 行) = "0:00"
End If

If CheckBox2.Value = True Then
Worksheets(2).Range("R" & 行) = "1000"
Else
Worksheets(2).Range("R" & 行) = "0"
End If

If CheckBox3.Value = True Then
Worksheets(2).Range("S" & 行) = "3000"
Else
Worksheets(2).Range("S" & 行) = "0"
End If

If CheckBox4.Value = True Then
Worksheets(2).Range("T" & 行) = "1500"
Else
Worksheets(2).Range("T" & 行) = "0"
End If

Unload Me
End Sub

この回答への補足

お答えありがとうございます。
初心者なので、もう少し教えていただければ幸いです。

行 = Sheet2.Range("A65536").End(xlUp).Offset(1).Row
の「行」というところには、どういったものを入れればいいか教えていただいてもいいでしょうか。

データの1行目は、H~Tまでの6行目です。
次のデータを入れたい行はH~Tまでの7行目以降となります。

また、各テキストボックス・チェックボックスの「行」というところは、「7」といれればいいんでしょうか?

補足日時:2005/06/09 12:05
    • good
    • 0

多少コードに手を加えています。



Private Sub CommandButton1_Click()

  Dim lRow As Long

  With Sheets("Sheet1")
    '最終行から転記先となる行番号を取得
    lRow = .Cells(65536, "A").End(xlUp).Row + 1
    'データ転記
    .Cells(lRow, "H").Value = TextBox1.Text
    .Cells(lRow, "I").Value = TextBox2.Text
    .Cells(lRow, "J").Value = TextBox3.Text
    .Cells(lRow, "K").Value = TextBox4.Text
    .Cells(lRow, "L").Value = TextBox5.Text
    .Cells(lRow, "P").Value = TextBox6.Text
    
    If CheckBox1.Value Then
      .Cells(lRow, "M").Value = "0:30"
    Else
      .Cells(lRow, "M").Value = "0:00"
    End If
    If CheckBox2.Value Then
      .Cells(lRow, "R").Value = 1000
    Else
      .Cells(lRow, "R").Value = 0
    End If
    If CheckBox3.Value Then
      .Cells(lRow, "S").Value = 3000
    Else
      .Cells(lRow, "S").Value = 0
    End If
    If CheckBox4.Value Then
      .Cells(lRow, "T").Value = 1500
    Else
      .Cells(lRow, "T").Value = 0
    End If
  End With

  Unload Me

End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。

また、よろしくお願いします

お礼日時:2005/06/09 12:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!