[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『フォームから最終行への入力』(とーへんぼく)
以下の様なシートにフォームの新規ボタンを押して最終行へ入力したいのですが、フォームでC列の場所だけ入力して新規ボタンを押すと、最終行(5行目)ではなく、4行目に入力されてしまいます。
worksheet名(sheet1)
A B C
1 あ ア
2 イ 伊
3 宇
4 お ←4行目に入力されてしまう。
5
フォームのコードは以下です。
Private Sub btn新規_Click()
Dim lastRow As Long With Worksheets("sheet1") lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 .Cells(lastRow, 1) = Me.txtひらがな.Text .Cells(lastRow, 2) = Me.txtかたかな.Text .Cells(lastRow, 3) = Me.txt漢字.Text End With Unload Me End Sub
ABCのどれかに空欄があっても最下行に入力するにはどうすればよいか教えてください。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
使えそうなのを探してください。
たぶん最後の例がよいです。
提示された例ではだめですが
実際のデータでは、1行目に見出しがあるなら
MsgBox Range("a1").CurrentRegion.Rows.Count
でも大丈夫です。
(マナ) 2019/06/15(土) 07:37
結論から言いますと一応できました。
1行目の見出しは基本的に入力するのですが、入力者が複数人いるため、ご紹介いただいたリンク先の最後の例を利用しました。
With ActiveSheet.UsedRange
MaxRow = .Find("*", , xlFormulas, , xlByRows, xlPrevious).Row End With
このコードをこの掲示板に記載してあるフォームに入力した場合は、うまく動作(最下行に入力)しましたが、実際に作成しているフォームに入力した場合は、うまく動作しませんでした。しかし、
MaxRow = .Find("*", , xlFormulas, , xlByRows, xlPrevious).Row+1
のように+1を追加するとうまく動作しました。
コードの使用方法が間違っているのでしょうか?
初心者で勉強しながら作成しているので+1がある場合と無い場合の違いがよく分かりませんでした。
目的は達成しましたが、さらに知識を深める必要があると感じました。
ありがとうございました。
(とーへんぼく) 2019/06/19(水) 03:37
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.