• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:登録する行の変更)

Excel VBAで題名を固定し、新しいデータを特定のセルから入力する方法

このQ&Aのポイント
  • Excel VBAを使用して、入力シートのデータからDBシートに新しいデータを登録する方法について質問です。
  • DBシートの題名は固定されていますが、新しいデータが追加されると題名が下に移動します。特定のセルから新しいデータが入力されるようにするための方法を知りたいです。
  • 具体的には、入力シートのA2からデータを入力し、それをDBシートに登録したいです。ExcelのVBAに詳しくないため、どのように変更すれば良いかわかりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • ap_2
  • ベストアンサー率64% (70/109)
回答No.3

>>ANo.2 きっと他人が作ったプログラムの修正。貼るしかない気が… ソースは確かに美しくないけどね;; >>ANo.1 あれ、ANo.1じゃダメでした?それとも説明が悪かったかな。。 ダメでしたら、シートの構造と使い方の補足をお願いします。 ◆ANo.1まとめ VBA 24行目と51行目の2箇所を変更してみてください。 (修正前)1行目がタイトルか自動判別  tbl.Range("A1").Sort Key1:=tbl.Range("A1"), Header:=xlGuess (修正後)1行目をタイトルとする  tbl.Range("A1").Sort Key1:=tbl.Range("A1"), Header:=xlYes ◆+α 質問とは別件ですが… > '明細行有無チェック > n = WorksheetFunction.CountIf(Range("M46:M65"), "*") M46~M65のセルが、全部空ならエラーにする処理です。 多分、M47~M66の間違いかと。そうなら、"M47:66"に修正シテネ!

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

こういう質問は、原データが無いので、チェックがしにくい。 どうせ丸投げするなら、文章でやりたいことを書いて質問してくれたほうが(丸投げだが)まだまし。 手本にした(あるいは質問者が弄り回したのかもしれないが)コードは、癖があって、どこかで見習った方法を、総動員した感じで、初心者向けには、勉強に適当ではないと思うし無駄があるように思う。。 (1)研作(未入力チェック 2)ソートーーA列に入っている、発注番号でらしい (3)存在チェックーーA列で。存在チェックはFindでやってなぜ後半はCountIF関数なのかな?    存在チェックにその前のソートは効いているのかな(ソートする必要はあるのかな)   存在チェックそのものも不要に見えるが。 (4)空白行は除く (5)DBシートへの貼り付け と処理が複雑だが ーーー エクセルもVBAも判らないというなら、 For Nextで最初の行から最終行まで(1行ずつ) IFステートメントでその行の内容を判別する。そして その行が条件に合わない行は処理せず(次の行の処理に移り)、 条件に合ったものは、DBシートに1行分の列項目を代入(代入先行を1行ずつ、づらすテクニック要) 必要あれば最後にDBシートで並べ替え の方法が、素直な考え方で、初心者むけだ。

すると、全ての回答が全文表示されます。
  • ap_2
  • ベストアンサー率64% (70/109)
回答No.1

#ぱっと見ただけなので、間違ってたらゴメンネですが… > 'コピー&貼り付け > Range("A47:U66").Copy > tbl.Range("A" & z + 1).PasteSpecial Paste:=xlPasteValues > > '[発注番号]でソート > tbl.Range("A1").Sort Key1:=tbl.Range("A1"), Header:=xlGuess 「入力」のA47:U66を、「DB」の一番 "下" に貼り付けてから、「DB」をA列でソートしてます。 たぶん、ここでタイトル行がデータ扱いされちゃってるんじゃないかな? (修正) > tbl.Range("A1").Sort Key1:=tbl.Range("A1"), Header:=xlYes "Header:=xlGuess" 「タイトル行の有無を自動判別」 から、 "Header:=xlYes" 「先頭行をタイトルと見なす」 に・・・ ソート処理が2箇所あるので、両方とも変更してみてください。 ただ、コレが原因だとしたら、「自動判別できなくなった」のが問題な気がします。 プログラム作成当初とは何かが変わっているんじゃないでしょうか? VBAを直すより、A列を見直してみる方がいいかもです。

nuocngoai
質問者

お礼

ご回答ありがとうございます。 修正したやはり自動判別ができなくなって、入力したデータが混乱してしまいました。 そして、私の言い方が間違いました。A列はタイトルではなく1列はタイトルです。 エクセルは得意ではないですので、どこをどのように見直したらいいかわかならないです。 これは原因かもしれないという点があれば、是非教えて頂きたいです。 よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A