
A B C D E
1 リンゴ リンゴ
2 ミカン
3 ミカン バナナ
4
5
6 バナナ
7
上記のように、空白のセルをとばして(詰めて)転記するにはどうすれば良いでしょうか?
Dim n as long
Dim k as long
k = Range("A" & Rows.Count).End(xlUp).Row
For n = 1 To k
If Cells(n, 1) <> "" Then
Cells(n, 4) = Cells(n, 1)
n = n + 1
End If
Next n
とやると当然ながらD1のセルのみにしか転記できません
A列の範囲を取得し、PasteSpecialのSkipBlanksで貼り付けてもうまくいきませんでした
どうぞよろしくお願いします
No.1ベストアンサー
- 回答日時:
nはA列用のカウンタですよね?
D列用のカウンタを準備すればOKです。
具体的には
Sub test()
Dim n As Long
Dim k As Long
Dim l As Long
k = Range("A" & Rows.Count).End(xlUp).Row
l = 1
For n = 1 To k
If Cells(n, 1) <> "" Then
Cells(l, 4) = Cells(n, 1)
l = l + 1
End If
Next n
End Sub
となります。
(n=n+1はfor文の中なので不要ですね)
おお!ありがとうございます!
思うとおりに動きました!
変数をもう一つ置くという事は思いついてはいたのですが、
For NextとIfの文脈でどう処理していくかが分からなかったので、
目からうろこです。
早速のご回答大変助かりました。ありがとうございました。
No.2
- 回答日時:
一例です。
Sub sample()
Dim i As Long, n As Long
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If Cells(i, "A") <> "" Then
n = n + 1
Cells(n, "D") = Cells(i, "A")
End If
Next
End Sub
ご回答ありがとうございます!
思い通りになりました
やはりD列用の変数を用意するのですね
Forの宣言部分で範囲を指定出来るというのは新発見です
いくら頭をひねっても出てこなかった答えが何通りもあるという
事で自分の未熟さが恥ずかしい限りです
とても勉強になりました。ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
マクロで空白セルを詰めて別シートに転記
Visual Basic(VBA)
-
VBA 空白行に転記する
Visual Basic(VBA)
-
-
4
Excelマクロで空白セルを詰めて別シートに転記するにはどうすればよいでしょうか?
Excel(エクセル)
-
5
エクセルマクロ 【空白セルを無視する方法を教えてください】
Excel(エクセル)
-
6
空白行を無視してコピーするマクロについて
Excel(エクセル)
-
7
VBA 空白セルを削除ではない方法で詰めるやり方
Visual Basic(VBA)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
10
EXCEL VBA マクロ 別シートの空白行へのコピー
その他(Microsoft Office)
-
11
数式による空白を無視して最終行までコピーするマクロ
Excel(エクセル)
-
12
i=cells(Rows.Count, 1)とi=cells(Rows.Count, 2)の違い
Visual Basic(VBA)
-
13
マクロで最終行を取得してコピーしたい
Visual Basic(VBA)
-
14
エクセルで空白以外のセルの値を取りたいのですが
その他(Microsoft Office)
-
15
別シートに空白セルを詰めデータを自動コピー
Excel(エクセル)
-
16
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
17
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
18
【ExcelVBA】指定の書式で、マクロなしブックとしてAlertなしで別名保存する方法
Visual Basic(VBA)
-
19
ExcelでA列をコピーしたいのですがコピー範囲内に空白セルがあるとそこで終わってしまいます。 全て
Excel(エクセル)
-
20
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
B列の最終行までA列をオート...
-
空白セルをとばして転記
-
VB2005EE:DataGridViewでチェ...
-
VBAで指定範囲内の空白セルを左...
-
DataGridの列の数、行の数
-
rowsとcolsの意味
-
Excelで、あるセルの値に応じて...
-
Excel VBA:エクセルのマクロで...
-
Excel VBA 検索した値を入力フ...
-
IIF関数の使い方
-
VBA 何かしら文字が入っていたら
-
別シートから年齢別の件数をカ...
-
C# dataGridViewの値だけクリア
-
VBマクロ 色の付いたセルを...
-
Excel VBA の Copy,Paste の質問
-
Excel vbaでアクティブなシート...
-
Excel VBA_2000ハイパーリンク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA sum ワークシートChange
-
Excelで、あるセルの値に応じて...
-
Worksheets メソッドは失敗しま...
-
URLのリンク切れをマクロを使っ...
-
【VBA】2つのシートの値を比較...
-
rowsとcolsの意味
-
Cellsのかっこの中はどっちが行...
-
vba 2つの条件が一致したら...
-
IIF関数の使い方
-
B列の最終行までA列をオート...
-
VBAでのリスト不一致抽出について
-
複数の列の値を結合して別の列...
-
VBA 何かしら文字が入っていたら
-
VBAのFind関数で結合セルを検索...
-
エクセル 2つの表の並べ替え
-
DataGridViewに空白がある場合...
-
文字列の結合を空白行まで実行
-
データグリッドビューの一番最...
-
【VBA】複数行あるカンマ区切り...
-
ExcelVBAでテキストルーレット...
おすすめ情報