
画像の、①から⑥の表に入力されているデータを番号順に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も見ています
-
Excelで質問です。空白セルを無視して貼り付け(値のみ)という操作
Excel(エクセル)
-
エクセルマクロ 【空白セルを無視する方法を教えてください】
Excel(エクセル)
-
数式による空白を無視して最終行までコピーするマクロ
Excel(エクセル)
-
-
4
形式貼り付けの「空白を無視する」ができない
Excel(エクセル)
-
5
空白行を無視してコピーするマクロについて
Excel(エクセル)
-
6
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
7
特定のシートのみ再計算させない方法は?
Excel(エクセル)
-
8
VBA空白(数式での””を含む)を除いてコピーが出来ません。ご指導お願い致します。
Excel(エクセル)
-
9
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
10
excel2010 空白セルにのみ貼り付けたい
Excel(エクセル)
-
11
Excelで数式の入っているセルを空白と認識させたい
Excel(エクセル)
-
12
マクロで空白セルを詰めて別シートに転記
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
風俗店へ行く前のご飯
-
検便についてです。 便は取れた...
-
尿検査前日に自慰行為した時の...
-
イタリアから帰国する際、肉製...
-
勃起する時って痛いんですか? ...
-
精子に血が・・・
-
EXCELで式からグラフを描くには?
-
ボタン電池の付いていないマザ...
-
至急です。 今日アルバイト中に...
-
納豆食べた後の尿の納豆臭は何故?
-
エクセルで空白セルを含む列の...
-
ある範囲のセルから任意の値を...
-
病院側から早く来てくださいと...
-
最近、飲酒すると手のひらが真...
-
【Excelで「正弦波」のグラフを...
-
Excel関数:本日以降(以前)の...
-
値が入っているときだけ計算結...
-
四字熟語で“検”の字が入る四字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
イタリアから帰国する際、肉製...
-
2つの数値のうち、数値が小さい...
-
健否~書類の書き方~
-
VLOOKUP関数を使用時、検索する...
-
値が入っているときだけ計算結...
-
小数点以下を繰り上げたものを...
-
エクセルで空白セルを含む列の...
-
EXCELで条件付き書式で空白セル...
-
リンク先のファイルを開かなく...
-
ある範囲のセルから任意の値を...
-
精子に血が・・・
-
エクセルで数式の答えを数値と...
-
風俗店へ行く前のご飯
-
エクセル指定した範囲からラン...
-
一番多く表示のある値(文字列...
-
Excel 数値の前の「 ' 」を一括...
-
ワードのページ番号をもっと下...
-
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のみ数式による空白ができる場合は、
その空白を無視しません。
ペーストする時は、数式による空白ではなく、ただの空白としてペーストしたいです。