アプリ版:「スタンプのみでお礼する」機能のリリースについて

ユーザーフォームにある19個のデータをセルのA10から書き込み、次はA11といった風に最下段に足していきたいのですが、出だしのA10からでつまづいています。
何方かご教授お願いします。
小生が書いたマクロは下記になります。
Private Sub CommandButton1_Click()
Dim RowNum As Long
Dim Ctrl As Control
Dim ws As Worksheet
Dim i As Integer
Dim n As Integer
Set ws = ActiveSheet
Set RowNum = 10
With ws
RowNum = .Cells(Rows.Count, 1).End(xlUp).Row + 1
For n = 1 To 19
.Cells(RowNum, n).Value = Me.Controls("TextBox" & n).Value
Next n
End With
For i = 6 To 19
UserForm2.Controls("TextBox" & i).Value = ""
Next i
End Sub

A 回答 (5件)

If Cells(Rows.Count, 1).End(xlUp).MergeCells Then


RowNum =10
Else
RowNum = Cells(Rows.Count, 1).End(xlUp).Row +1
End IF
と云った感じでは??
A列の最終セルが結合されていれば 10
それ以外は
    • good
    • 0
この回答へのお礼

A8、9の結合解除でやってみることにしました。
ご指南ありがとうございました。

お礼日時:2016/03/15 16:38

>A8とA9がセル結合されているので、A10から入れれぬものかと思案しているところです。


結合されたセルに何か文字が入っているなら

RowNum = Cells(Rows.Count, 1).End(xlUp).Row +2
では?
    • good
    • 0
この回答へのお礼

A10以降は結合されてないです。
A8,9の結合だけ解いてやってこうかと思ってます。

お礼日時:2016/03/15 14:20

何度も失礼します。

書き漏らしたので
もし A9セルがどうしても空白でなくてはならない場合

If Range("A9").Value="" Then
RowNum =10
Else
RowNum = Cells(Rows.Count, 1).End(xlUp).Row +1
End IF

とかでは
    • good
    • 0

失礼しました。


>それのA10の指定で手こずってます。A10にデータが入っていれば下の段に行けるんですけど。
もし、A9に何か項目文字でも入れてから

RowNum = Cells(Rows.Count, 1).End(xlUp).Row +1
For n = 1 To 19
Cells(RowNum,n).Value = Me.Controls("TextBox" & n).Value
Next
ではダメでしょうか。
    • good
    • 0
この回答へのお礼

A8とA9がセル結合されているので、A10から入れれぬものかと思案しているところです。

お礼日時:2016/03/15 13:46

質問の箇所以外にも突っ込みどころ多数あるので、一応


Private Sub CommandButton1_Click()
Dim RowNum As Long
RowNum = Cells(Rows.Count, 1).End(xlUp).Row
For n = 1 To 19
Cells(RowNum+n,1).Value = Me.Controls("TextBox" & n).Value
Next
For i = 6 To 19
Me.Controls("TextBox" & i).Value = ""
Next
End Sub

動作確認はしれいませんが
Private Sub CommandButton1_Click()
Dim RowNum As Long
Dim Ctrl As Control
Dim ws As Worksheet
Dim i As Integer
Dim n As Integer
'Set ws = ActiveSheet
' ActiveSheetなら指定する必要あるのかな?
'Set RowNum = 10
'これも以下で計算しているので不要ですが、Setを使う必要もありません。

'With ws
'不要だと思う
’ RowNum = .Cells(Rows.Count, 1).End(xlUp).Row + 1
’以下のようにしてみると
RowNum = Cells(Rows.Count, 1).End(xlUp).Row
For n = 1 To 19
’ .Cells(RowNum, n).Value = Me.Controls("TextBox" & n).Value
Cells(RowNum+n,1).Value = Me.Controls("TextBox" & n).Value
'A列に入れるのですよね、たぶん質問の箇所はここ?
Next n
’ End With 不要になりますよね。
For i = 6 To 19
UserForm2.Controls("TextBox" & i).Value = ""
Next i
End Sub
    • good
    • 0
この回答へのお礼

A10からT10まで一括入力して、次はA11からT11にデータを入力するプログラムです。
それのA10の指定で手こずってます。A10にデータが入っていれば下の段に行けるんですけど。
VBAは難しいです。

お礼日時:2016/03/15 13:11

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