dポイントプレゼントキャンペーン実施中!

Excelで
シート1のA1~E1000までデータがあります。
B列には0~1500の数値データがあり昇順で並んでいます。
このB列のデータの700~1000の数値データのA~E列全ての範囲を「切り取り」・シート2に「形式を指定して貼り付け」(値)という作業をマクロにてできませんか?

尚、1つセルが下がるごとに1数字があがるとは限りません。

大変困ってます。詳しい方ご教授ください。

A 回答 (2件)

思いつくままのロジックでやって見ました。


別に難しいことはしてません。
(例データ)Sheet1のA1:E11に
a1cde
a2cde
a3cde
a4cde
a5cde
a6cde
a701cde
a812cde
a923cde
a1002cde
a1302cde
(コード)標準モジュールに
Sub test02()
d = Range("b1").CurrentRegion.Rows.Count
MsgBox d
'-----700を越えた行を見付ける
For i = 1 To d
If Cells(i, "B") > 700 Then
x = i
Exit For
Else
End If
Next i
'-----1000を越える直前の行を見つける
m = x
For i = x To d
If Cells(i, "B") > 1000 Then
y = m
Exit For
Else
m = i
End If
Next i
'----コピーと貼りつけ
MsgBox x
MsgBox y
Range(Cells(x, "A"), Cells(y, "E")).Copy
Worksheets("sheet2").Activate
ActiveSheet.Paste
End Sub
を貼りつけて実行。
(結果)
Sheet2のA1:E3に
a701cde
a812cde
a923cde
となりました。
Msgboxは確認のため入れていますが、省いてください。
    • good
    • 0
この回答へのお礼

どうもありがとうございました!
若干の変更は必要でしたが、完璧にできました。
ありがとうございました。
わたしにとっては難しい記述でしたがなんとかなりました。

お礼日時:2003/11/07 10:43

もう1列使用するのはダメですか もし可能なら


例.F列に 計算式を入れる。
=if(B1<=699,"",if(B1>=1001,"","*"))と入れる
B列に入っている内容が 700から1000(数値タイプ)であれば「*」印がF列に表示される
上記以外であれば、空白となる。最終行まで 計算式をコピーして 後は「オートフィルター」を使用して「*」印をチョイスしてAからE列全体をコピーすればいけると思うのですが どうでしょうか
    • good
    • 0
この回答へのお礼

どうもありがとうございました。
ひとつ(700-1000のデータ)のデータを貼り付けるだけならいけたんですが700-1000のデータは複数有りそれを積み重ねたところセル位置が1800を超えたあたりで貼り付けができなくなりました。
しかしNo2の方の回答で解決しました。
どうもありがとうございました。

お礼日時:2003/11/07 10:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!