投稿日 | : 2003/01/17(Fri) 16:49 |
投稿者 | : A221 |
Eメール | : |
URL | : |
タイトル | : Re: KKRe^2: EXCELの部分複写で別シートへ転写 |
> Range((X * 2) + 37, 2).Select
Range()の引数は文字列です。Cells()のような数値渡しではありません。
SelectTmp = "B" & (X * 2) + 37 & ":C" & (X * 2) + 37 & ","
SelectTmp = SelectTmp & "X" & (X * 2) + 37 & ":AI" & (X * 2) + 37 & ","
SelectTmp = SelectTmp & "G" & (X * 2) + 38 & ":H" & ((X * 2) + 38
※まとめて複数範囲選択する場合。
また、Set xlSheet = xlBook.Worksheets(1)としたのだから、
With xlSheets
.Range(SelectTmp).Select
End With
こんな感じになります。
暗黙的なEXCELオブジェクトの使用はいけません。
メモリリークの原因になります。
xlsobj.application.Selection.Copy
xlsobj.WorkSheets("新規シート").Select
Range同様〜
xlsobj.WorkSheets("新規シート").Paste
> Next X
#参考ですが、同一サイズの範囲で開始点がずれるだけなら、Rangeで選択した後
#.Range(SelectTmp).Offset(Row, Col).Select でオフセットできます。