こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルのシーとコピーで

シート1に 数値が入っています。
その数値を シート2に コピーするには =シート1!A1の
数式を入れれば シートA1の数値が シート2に入りますが

シート1のA列の数値を 等間隔で飛ばして シート2に入れようとして

シート2のB列の1に
=シート1!A1
シート2のB列の2に
=シート1!A10
と 入力して 二つセルを合わせて コピー下にスライドしていけば
等間隔で シートBに 9行空けた間隔のシート1の数字が入ると思ったけれど 無理でした。

どなたか 簡単に シート1の数値を等間隔で飛ばして
シートBの縦列にコピー出来る簡単な 方法は無いでしょうか?

宜しくお願いします。

投稿日時 - 2006-11-22 00:42:32

QNo.2554547

困ってます

質問者が選んだベストアンサー

#1です。
簡単なサンプルです。


Sub xxxx()

Dim i As Integer 'sheet1の行数
Dim k As Integer 'sheet2の行数
Dim Row As Integer 'sheet1の最終行


'初期化
i = 1
k = 1


'最終行の取得
Row = Worksheets("Sheet1").Range("A1").CurrentRegion.Rows.Count

'等間隔毎のコピー
Do While i <= Row '10行ごとのカウントが最終行以内の間実行

'sheet1 → sheet2へのコピー
Worksheets("Sheet2").Cells(k, 1) = Worksheets("Sheet1").Cells(i, 1)

i = i + 10 'sheet1は10行おき

k = k + 1 'sheet2は1行ずつ

Loop

End Sub

投稿日時 - 2006-11-22 02:29:20

お礼

再度 回答 ありがとう御座います。
 参考文例を参照しながら 今晩は流石に眠いので
   明日 VBAの本と睨めっこしてみます。
   お手数をお掛けしました。

 また 1のお礼で タイプミスが有り 大変失礼致しました。 

投稿日時 - 2006-11-22 02:51:22

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

fxの欄で、シングルクォーテーションマークを=の前につけて、

'=シート!A1
’=シート!A10
として二つのセルに会わせて下にスライドします。
データ「区切り位置」で右下の「完了」をクリック。

これでどうでしょうか?

投稿日時 - 2006-11-22 06:41:57

お礼

回答 ありがとう御座います。

投稿日時 - 2006-11-22 20:58:27

ANo.4

◆こんな方法もありますよ
=INDEX(Sheet1!A:A,1+(ROW()-1)*9)
または、
=INDIRECT("Sheet1!A"&1+(ROW()-1)*9)

投稿日時 - 2006-11-22 03:30:21

お礼

回答 ありがとう御座います。
 +(ROW()-1)*9)の記述が 味噌ですね。
 今晩 コツコツ やってみます。

投稿日時 - 2006-11-22 20:53:52

ANo.3

シート2のB1に
=OFFSET(シート1!A$1,(ROW()-1)*9,)
下にコピー。

投稿日時 - 2006-11-22 02:29:45

お礼

回答 ありがとう御座います。

OFFSET関数ですね ちょっと使ったこと無いので
 明日 この関数の使い方を 調べて使ってみます。
 

投稿日時 - 2006-11-22 02:54:37

ANo.1

う~ん、関数では難しいですね。
(簡単な方法はない。VBAだったら簡単)

もし今回1回コッキリの作業であれば手動でやったらどうですか?

1.シート1のB列に10セルおきに○を入れる
2.シート1のB列を○でフィルタリング
3.シート1のA列をコピー
4.シート2のB列にコピー

投稿日時 - 2006-11-22 01:22:31

補足

皆様 回答頂きありがとう御座いました。
 今晩から 明日に掛けて マニュアル見ながら 頑張ってみます。
 VBAの 本も有るんですが なかなか理解できなくて(^_^;

 また 何か有りましたら 宜しくお願いします。

投稿日時 - 2006-11-22 20:58:51

お礼

回答 ありがとうます。
 やはり 関数では 難しいんですね・・。
 
 1~4の手順のやり方で 1列なら対処出来そうですね
 ただ これを応用できれば B列以降も同様に飛ばしが
 出来ないかとも 思っていたので フィルタリングだと
 列が増やすと 大変そうですね。

 VBAは 殆ど解らないんですが 
  理解出来るかは別として

 もし 行数も少なく簡単な記述で出来るのなら
  お時間有りましたら 参考に 記述して頂ければ 幸いです。

投稿日時 - 2006-11-22 01:51:57

あなたにオススメの質問