画像の、①から⑥の表に入力されているデータを番号順に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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
腕を見たら黄色くなってる部分...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
精子が黄色?
-
口の中に黒い血の塊
-
白血球が多いとどんな心配があ...
-
尿検査前日に自慰行為した時の...
-
中出しをするとお腹が痛い・・・。
-
精子に血が・・・
-
これって喉仏ですか? 私は女性...
-
爪が紫色?
-
納豆食べた後の尿の納豆臭は何故?
-
筋トレするとチンコが縮んじゃ...
-
射精をして1週間以内に尿検査を...
-
尿検査の前日は自慰控えたほう...
-
EXCELで式からグラフを描くには?
-
excelでsin二乗のやり方を教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報
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のみ数式による空白ができる場合は、
その空白を無視しません。
ペーストする時は、数式による空白ではなく、ただの空白としてペーストしたいです。