- 締切済み
VBA初心者です。
入力元から転記先へ最終行への転記が完了、入力元のデータ削除までできました。 次の一つ下の最後行へ更新(書式等の更新含め)とレコードNo(入力元)が自動で更新をする為の記述、記述をする場所などを教えてください。 説明がわかり難いかも知れませんが、どうぞ宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17070)
回答No.1
全体に質問の主旨が、推測でしか言えない程度にわかりがたい。 ーー (1)x=range("A65536").end(xlup).row をセット直前におこなう (2)前の行を変数に覚え、今回は、+1した行番号に、新入力データをセットする。i=i+1でCells(i,"B") 質問はこんなことか? ーー >記述をする場所などを教えてください。 どういう意味? シートのChangeイベントにコードを書くことを言うのか? その場合は毎回やり直す、上記(1)の方法が相応しい。 (2)のPUBLIC変数でiを管理する方法もあるかも知れないが。 ーー 今あるコードを示し、状況がこう変わったら、どこをどう変えるのか?とかの質問にならないですか。 それともう少し自分のやりたいこと全般を説明するとか。 (例)フォームにデータを入力し、入力済みボタンを押すと、シートの最終行の次行へフォームのデータを格納するとか。
お礼
ありがとうございます。 説明不足ですみません。 >(例)フォームにデータを入力し、入力済みボタンを押すと、 >シートの最終行の次行へフォームのデータを格納するとか。 はい。 Aシート(入力ファーム)からBシートへ格納します。 そこまでは、出来たのですが、次の格納の為に 最終次行に書式の更新をするのとAシートの ○sht.Range(○(i)).MergeArea.ClearContentsを レコードNoだけ重複なしで自動で捜し出して表示したいのです。 途中からですが、 Set ○rng = ○tbl.Cells(○tbl.Rows.Count, 1).Offset(1) For i = 0 To UBound(○) ○rng.Offset(0, i).Value = ○sht.Range(○(i)).Value ○sht.Range(○(i)).MergeArea.ClearContents Set ○tbl = ○tbl.Resize(○tbl.Rows.Count + 1) Names("○").RefersTo = ○tbl Set lastrec = ○tbl.Rows(○tbl.Rows.Count) Set newrec = lastrec.Offset(1) lastrec.Copy newrec.PasteSpecial xlPasteAllExceptBorders 5行目からの記述が失敗しています。 よろしくお願いします。