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

 指定範囲(I9:CW40)の中で1列おきに2列選択したいのですが 、当然ですがマクロで記録はできても実行できませんし2行1列には関数式が入っているのでこれを除いて他の範囲(I71:CW99)に同じように1列おきに2列に「形式として貼り付け」ー「値」としたいのですが、お教え願えませんでしようか?



Sheets("メイン").Select
Range( _
"J9:K40,M9:N40,P9:Q40,S9:T40,V9:W40,Y9:Z40,AB9:AC40,AE9:AF40,AH9:AI40,AK9:AL40,AN9:AO40,AQ9:AR40,AT9:AU40,AW9:AX40,AZ9:BA40,BF9:BG40,BI9:BJ40,BL9:BM40,BO9:BP40,BR9:BS40,BU9:BV40,BX9:BY40,CA9:CB40,CD9:CE40,CG9:CH40,CJ9:CK40,CM9:CN40,CP9:CQ40,CS9:CT40,CV9:CW40" _
).Select
Range("CV9").Activate
Selection.Copy
End Sub

A 回答 (2件)

1列おきに2列に「形式として貼り付け」ー「値」としたいのですが


マクロの記録にばかり頼っていると、どうしてもコピーと貼り付けをイメージしてしまいますが
簡単な式で、値をほかのセルへ入れることが出来ます。

例えば
Sheets("コピー先").Range("J9:K40").Value=Sheets("メイン").Range("J9:K40").Value

とかでできます。

今回の質問の場合、列(JとかK)を順に変えたいので Cellsプロパティを使って
Sheets("コピー先").Range(Sheets("コピー先").Cells(9, 10), Sheets("コピー先").Cells(40, 11)).Value =・・・
と記述することになります。

Sub Macro1()
Dim j As Integer
Dim k As Integer
j = 10
k = 10
For i = 1 To 3
Sheets("コピー先").Range(Sheets("コピー先").Cells(9, k), Sheets("コピー先").Cells(40, k + 1)).Value = _
Sheets("コピー元").Range(Sheets("コピー元").Cells(9, j), Sheets("コピー元").Cells(40, j + 1)).Value
j = j + 3
k = k + 2
Next
End Sub

j = 10
k = 10
For i = 1 To 3
・・・
はそちらの都合に合わせて変更してください。
http://excelvba.pc-users.net/index.html
などのサイトを参考にして勉強してみてください。
    • good
    • 0
この回答へのお礼

 ご回答ありがとうございます。それにしてもあまりにも自分の勉強不足で質問ばかりすればいいというものではないと痛感しました質問するならそれなりのレベルになってからでこれから本当に困った時に助力を願えるようにします。

重ね重ねありがとうございます。

お礼日時:2013/01/30 08:48

連続した四角に囲まれたセルの範囲を選択して貼り付けることはできますが離れたセルを同時に選択して貼り付けることはできませんね。


For Next ステートメントなどを使って順にコピーし貼り付けていくのがよいでしょう。
    • good
    • 0

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