|
▼あさこ さん、座布団さん
こんばんは。
>もし、これがファイルをまたいだ場合どうしたらいいのでしょうか?
>本当に初心者ですみません。(>_<)
>
>例えばりんご.xlsのリンゴというシートのデータを
>総合.xlsのリンゴというシートに貼り付けたい場合なんですけど・・
仮にBook1.XlsのSheet1のセルA1から
A
1 10
2 11
3 12
4 13
5 14
6 15
7 16
8 17
9 18
10 19
というようなデータが入っていたとして、
これをBook2.xlsのSheet2のセルA1から
A B
1 10 11
2 12 13
3 14 15
4 16 17
5 18 19
というデータを構成させるには、
標準モジュールに
'=======================================================
Sub test()
Dim rng As Range
Dim myarray As Variant
With Workbooks("book1.xls").Worksheets("sheet1")
myarray = sp_trans(.Range("a1", .Cells(.Rows.Count, 1).End(xlUp)))
End With
With Workbooks("book2.xls").Worksheets("sheet2")
.Range("a1:b" & UBound(myarray, 1)).Value = myarray
End With
End Sub
'=======================================================================
Function sp_trans(rng As Range, Optional Interval = 2) As Variant
'機能---指定されたセル範囲を指定された列数に再配置する
' input---- rng 再構成するセル範囲
' interval 再構成列数
' output--- sp_trans n行 interval列の2次元配列
ReDim ans(1 To Application.RoundUp(rng.Count / Interval, 0), 1 To Interval)
For idx = 1 To rng.Count
ans((idx - 1) \ Interval + 1, _
((idx - 1) Mod Interval) + 1) = rng.Cells(idx).Value
Next
sp_trans = ans()
Erase ans()
End Function
でtestを実行してみて試してください。
|
|