- ベストアンサー
Excelのセルに値を順番に入力する方法
- Excelのセルに順番に値を入力する方法を教えてください。
- A列に値があり、B列には一部空欄セルがあります。B列の空欄セルに、上から順番にA列の値を入力したいです。
- 現在の記述ではうまくいかず、正しいコードがわかりません。良い方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
sub macro1() dim h as range dim i, j, n, z z = application.countif(range("A:A"), ">0") do ’A列を上から順に調査 do i = i + 1 loop until cells(i, "A")>0 ’B列の空白を上から順に調査 do j = j + 1 loop until cells(j, "B") = "" ’転記 cells(j, "B") = cells(i, "A") n = n + 1 loop until n = z end sub
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
例データ と結果(元は*のB列行が空白) A B 23 5 21 23 * 26 8 3 21 * 6 7 1 26 * 2 3 3 3 * 4 5 ーー Sub test01() Dim cl As Range d = Range("a65536").End(xlUp).Row 'A列最終行 i = 2 Range("b2:B" & d).Select Selection.SpecialCells(xlCellTypeBlanks).Select '空白セル選択 For Each cl In Selection cl.Value = Cells(i, "A") '順にA列セルの上行からの値をセット i = i + 1 Next End Sub
お礼
imogasi様 有難うございます。とても参考になりました。
- chonami
- ベストアンサー率43% (448/1036)
あー、なるほど。 すみません、勘違いしてました…。
- chonami
- ベストアンサー率43% (448/1036)
C列にA列をコピーして貼り付け→B列をコピー→C列に貼り付け時、「形式を選択して貼り付け」の「空白セルを無視する」にチェックして貼り付け で如何でしょうか?
- KURUMITO
- ベストアンサー率42% (1835/4283)
関数を使って対応することできます。 例えば作業列を使ってC1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B1<>"",B1,IF(ROW(A1)>COUNTIF(A:A,">0")+COUNT(B:B),"",INDEX(A:A,COUNTIF(B$1:B1,"")))) C列にお求めの表示がされますがB列に表示したい場合にはC列を選択してコピーし、その後に形式を選択して貼り付けて「値」にチェックをして貼り付けます。 その後にC列を削除します。
お礼
KURUMITO様 有難うございます。確かに関数でもできました。 有難うございます。
お礼
回答頂き有難うございます。 すみません、もう一つ教えて頂きたいのですが、変数hをrange で宣言しているのは、どのような意味なのでしょうか? 教えて頂けないでしょうか?