- ベストアンサー
指定範囲で1列おきに2列選択
- マクロで記録した選択を実行することはできません。
- 関数式が入っている列を除いて他の範囲でも同じ操作を行いたいです。
- 範囲内のセルの値を取得するために「形式として貼り付け」-「値」としたいです。
- みんなの回答 (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 などのサイトを参考にして勉強してみてください。
その他の回答 (1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
連続した四角に囲まれたセルの範囲を選択して貼り付けることはできますが離れたセルを同時に選択して貼り付けることはできませんね。 For Next ステートメントなどを使って順にコピーし貼り付けていくのがよいでしょう。
お礼
ご回答ありがとうございます。それにしてもあまりにも自分の勉強不足で質問ばかりすればいいというものではないと痛感しました質問するならそれなりのレベルになってからでこれから本当に困った時に助力を願えるようにします。 重ね重ねありがとうございます。