VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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 でオフセットできます。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -