- ベストアンサー
エクセルマクロで空欄と空欄の間のデータを取得する方法
- エクセルマクロを使用して、特定の条件下で空欄と空欄の間のデータを取得する方法について教えてください。
- 具体的には、添付画像のようなデータが並んだエクセルシートがあります。このデータの中から、特定の条件に基づいて空欄と空欄の間のデータを取得したいです。
- また、取得したデータを別のエクセルシートにコピーし、書式設定をそのままに値のみをコピーする方法についても教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 >コピー先の罫線を崩さない様にするにはどうすればよろしいですか? r.Offset(, 1).Resize(, 3).Copy ThisWorkbook.Worksheets(i).Range("B1") ↓ ThisWorkbook.Worksheets(i).Range("B1").Resize(r.Rows.Count, 3).Value = _ r.Offset(, 1).Resize(, 3).Value 一例です。
その他の回答 (2)
- n-jun
- ベストアンサー率33% (959/2873)
Sub try() Dim ws As Worksheet Dim r As Range Dim i As Integer Set ws = Workbooks("Book1.xls").Worksheets("Sheet1") i = 1 With ws For Each r In .Range(.Range("A1"), .Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlTextValues).Areas r.Offset(, 1).Resize(, 3).Copy ThisWorkbook.Worksheets(i).Range("B1") i = i + 1 Next End With Set ws = Nothing End Sub 一例まで。
補足
ありがとうございます。 データは意図したとおりにコピーできましたが、 コピー先の罫線が消えてしまいました。 コピー先の罫線を崩さない様にするにはどうすればよろしいですか?
- rukuku
- ベストアンサー率42% (401/933)
はじめまして まずは、fightman11さんのマクロ使用の経験を教えてく ださい。どこまで丁寧に説明するかが異なってきます。 質問の文からだけでは不確かなところがありますので、 その部分は補足要求しながら、回答できる部分を回答し ます。 >ブックBには書式設定してあるので、値のみコピーします。 「コピー」&「形式を選択して貼り付け-値」でもできますが、 マクロならば [コピー先のセルのアドレス].value=[コピー元のセルのアドレス].value でもできます。 >空欄と空欄の間の 空白行の間の行の数が一定していませんが、空白行があったら、 次の行のデータを「ブックBシート1」の一番下に追加(以下繰り返し…) でよろしいでしょうか? あと、揚げ足を取るようで申し訳ありませんが、 >ブックAsheet1のA列に数値が入っている行のB列~D列の >データを別のブックBから取得したいのです。 と >ブックAsheet1のA列に数値が入っている行のB列~D列の >データを1セットとして、ブックBのsheet1のB1にコピーする。 ではコピー元とコピー先の関係が全く逆です。どちらが正しいですか?
お礼
ありがとうございました 解決しました
お礼
ありがとうございました。 全て思い通り解決しました。