
画像の、①から⑥の表に入力されているデータを番号順にsheet2へ値のみ貼り付ける作業をマクロで行いたいと考えています。
・各番号の範囲に入力されているデータの行数はランダムです。
・数式による空白は無視してコピー、sheet2のA2最終行へ値のみペーストしたいです。
・必ず番号順にsheet2へペーストしたいです。
・Jのデータは無視します。
自分でもやってみたのですが、上から順にコピペを繰り返す方法だと、①から②までが選択されてしまったり、空白を無視して選択をすると①から④の最終行まで選択されてしまいました。
わかりにくくてすみません。
何かいい方法があれば教えて頂きたいです。

No.4ベストアンサー
- 回答日時:
こんにちは
7x3のブロック内で1行(=3セル)全部が空白の行は上に詰めたいというご希望のように解釈しました。
>sheet2のA2最終行へ値のみペーストしたいです。
『すでにsheet2に何らかのデータが存在しているので、その最終行から追加してゆく』とも読めるのですが、ひとまずsheet2のA1セルから下へコピーするようにしてあります。
また、事前にsheet2全体をクリアしていますので、「追加してゆく方式」になさりたい場合は、このクリア処理を削除し、sheet2のスタートセル(=変数r2)の値を最終行にセットすれば、自動的に追加してゆくようになります。
>Jのデータは無視します。
「Jのデータ」の意味するものが何なのか理解できませんでした。
ですので、これに関しては対応していません。
というわけで、以下ではいかがでしょうか?
Sub Sample()
Const sheet1 = "Sheet1" ' ←元データのシート名
Const sheet2 = "Sheet2" ' ←コピー先のシート名
Dim i, j, r1 As Range, r2 As Range
Set r1 = Worksheets(sheet1).Range("A1:C7")
Set r2 = Worksheets(sheet2).Range("A1:C7")
r2.Worksheet.Cells.Clear
For i = 0 To 1
For j = 0 To 2
r2.Offset(i * 21 + j * 7).Value = r1.Offset(i * 8, j * 3).Value
Next j
Next i
With r2(1).Offset(0, 3).Resize(43, 1)
.FormulaR1C1 = "=IF(COUNTBLANK(RC[-3]:RC[-1])=3,""E"","""")"
.Value = .Value
.SpecialCells(xlCellTypeConstants).EntireRow.Delete
End With
End Sub
No.3
- 回答日時:
固定で良ければ以下のような感じはいかがでしょうか?
Sub Sample()
Dim 元行 As Long
Dim 元列 As Long
Dim 先行 As Long
Dim データ As Variant
Application.ScreenUpdating = False
先行 = 1
For 元行 = 1 To 9 Step 8
For 元列 = 1 To 7 Step 3
Sheets("Sheet1").Select
データ = Range(Cells(元行, 元列), Cells(元行 + 6, 元列 + 2))
Sheets("Sheet2").Select
Range(Cells(先行, 1), Cells(先行 + 6, 3)) = データ
先行 = 先行 + 7
Next
Next
Application.ScreenUpdating = True
End Sub
ブロック数も固定です。
こちらの方法だと上に詰めるのができませんでした。
説明不足ですみません。
この方法もこのパターンの時に使いたいと思います。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) データ入力規則リスト 空白を無視 3 2022/07/13 15:11
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) セルに抜けた番号の代わりに空白を挿入する 4 2023/04/10 20:29
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Visual Basic(VBA) VBAマクロ 決まっていない行を選択して別シートへ貼付け 4 2023/02/16 16:08
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) xlDownの使い分けについての質問です vbaでxlDownを使って一覧近い空白までのセルをコピー 3 2022/08/04 12:20
このQ&Aを見た人はこんなQ&Aも見ています
-
昔のあなたへのアドバイス
過去のあなたへ一度だけアドバイスを送れる電話があったとします。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
最速怪談選手権
できるだけ短い文章で怖がらせてください。
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
かっこよく答えてください!!
あなたは今にも別れそうなカップルの彼女の恋愛相談に乗っています。
-
Excelで質問です。空白セルを無視して貼り付け(値のみ)という操作
Excel(エクセル)
-
形式貼り付けの「空白を無視する」ができない
Excel(エクセル)
-
エクセルマクロ 【空白セルを無視する方法を教えてください】
Excel(エクセル)
-
-
4
数式による空白を無視して最終行までコピーするマクロ
Excel(エクセル)
-
5
空白行を無視してコピーするマクロについて
Excel(エクセル)
-
6
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
7
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
8
Excelで数式の入っているセルを空白と認識させたい
Excel(エクセル)
-
9
マクロで空白セルを詰めて別シートに転記
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
エクセルで空白セルを含む列の...
-
小数点以下を繰り上げたものを...
-
エクセル指定した範囲からラン...
-
EXCELで条件付き書式で空白セル...
-
VLOOKUP関数を使用時、検索する...
-
2つの数値のうち、数値が小さい...
-
リンク先のファイルを開かなく...
-
MIN関数で空白セルを無視したい...
-
イタリアから帰国する際、肉製...
-
エクセルで数式の答えを数値と...
-
一番多く表示のある値(文字列...
-
ある範囲のセルから任意の値を...
-
Excel 数値の前の「 ' 」を一括...
-
健否~書類の書き方~
-
検便についてです。 便は取れた...
-
値が入っているときだけ計算結...
-
excelのIF関数 A,Bの大きいほ...
-
精子に血が・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
爪が紫色?
-
EXCELで条件付き書式で空白セル...
-
2つの数値のうち、数値が小さい...
-
VLOOKUP関数を使用時、検索する...
-
リンク先のファイルを開かなく...
-
エクセルで数式の答えを数値と...
-
小数点以下を繰り上げたものを...
-
値が入っているときだけ計算結...
-
エクセル指定した範囲からラン...
-
健否~書類の書き方~
-
勃起する時って痛いんですか? ...
-
イタリアから帰国する際、肉製...
-
エクセルで空白セルを含む列の...
-
風俗店へ行く前のご飯
-
精子に血が・・・
-
MIN関数で空白セルを無視したい...
-
ワードのページ番号をもっと下...
-
ある範囲のセルから任意の値を...
おすすめ情報
7x3の固定です。一つのブロック内で7行以上3列以上にならない表です。
入力行数が7行未満になると残りの行に数式による空白ができます。
その空白は無視して値のみコピーし番号順にペーストしたいです
表の枠線も無視してペーストします
イメージです↓
Sheet1
ABC DEF
1値値値 値値値
2値値値 値(空白)値
3値値値 空 白
4空 白 値値値
5空 白 空 白
6値値値 空 白
7空 白 値値(空白)
sheet2
ABC
1値値値 ←ここからブロック①
2値値値
3値値値
4値値値
5値値値 ←ここからブロック②
6値 値
7値値値
8値値
ブロック②のDEFのように、Eのみ数式による空白ができる場合は、
その空白を無視しません。
ペーストする時は、数式による空白ではなく、ただの空白としてペーストしたいです。