差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
study:vba:copy [2017/03/15 02:39] – 作成 bananastudy:vba:copy [2020/03/26 04:17] (現在) – [How to copy range form one sheet to another] banana
行 1: 行 1:
-====== How to copy range form one sheet another ======+====== How to copy range form one sheet to another ======
 excelシートのある範囲(Range)を同じWorkbookの別シートに張り付ける方法を紹介する。\\ excelシートのある範囲(Range)を同じWorkbookの別シートに張り付ける方法を紹介する。\\
-Range.Copyメソッドを使うだが、範囲のlastRowを判断するロジックとコピー先の最後列を計算するロジックを入れる。\\+Range.Copyメソッドを使うだが、範囲のlastRowを判断するロジックとコピー先の最後列を計算するロジックを入れる。\\
 想定している使い方としては、マスタシートの必要な部分のみピックアップして別シートにコピーすることだ。\\ 想定している使い方としては、マスタシートの必要な部分のみピックアップして別シートにコピーすることだ。\\
 例えば、OLEDBドライバを使いExcelをDBとして使う場合、255番目以降のデータは認識されない問題がある。\\ 例えば、OLEDBドライバを使いExcelをDBとして使う場合、255番目以降のデータは認識されない問題がある。\\
行 10: 行 10:
  
 ===== Code snippet ===== ===== Code snippet =====
 +sourceはマスタシート、targetはコピー先のシート指定する。\\
 +startColはRangeの最初Column、endColは最後Columnを指定する。
  
 <code vb> <code vb>
行 25: 行 27:
     End With     End With
 End Sub End Sub
 +</code>
  
 +ここでは、lastRowを判断するColumnをstartColに対してだけ行っているが、空白が入っている可能性もあるので、endColまでLoopして判断した方が正確であろう。\\
 +lastColはtargetシートに何もない状態だと1が帰ってくるので、0に初期化するロジックが入っている。\\
 +では、このメソッドを呼び出すコードを以下に示す。
 +
 +<code vb>
 +Sub RangeCopy()
 +    Dim ws1 As Worksheet
 +    Dim lastRow As Long
 +    Set ws1 = Sheets("Sheet1")
 +
 +    lastRow = ws1.Cells(Rows.Count, 1).End(xlUp).Row
 +    Call AddTable(ws1, Sheets("Sheet2"), 1, 5)
 +    Call AddTable(ws1, Sheets("Sheet2"), 11, 15)
 +    
 +End Sub
 </code> </code>
 +

QR Code
QR Code study:vba:copy (generated for current page)