2016-04-22 7 views
0

良い日。ブックからブックへのセルのコピー "下付き文字範囲外"

"A - M"からセルを(左から右に)選択し、最後に使用する行まで(下向き)セルを選択するコードを記述しようとしています。
次に、一度選択すると、別のワークブックにコピーしていました。

これは、私が使用しようとしたコードです:

ActiveWorkbook.Worksheets("Sheet1").Range("A1:M" & LastRow).Copy _ 
    Workbooks("Converter.xlsm").Worksheets("Sheet1").Range("A1").CurrentRegion 

この行以外のコードの作品に他のすべて。

Run-time error '9': 

Subscript out of range 

ありがとう:
そして結果がこれです。

PS。私が使った "LastRow"変数、私はちょうどチュートリアルからそれを取り出した。それは個人的なユーザ定義の変数ではないので、実際にVBAのドキュメンテーションからのものかどうかはわかりません。

+1

宛先セルに '.CurrentRegion'を取り除こうとします。 – Rosetta

答えて

0

あなたはLastRowの計算がないと述べました。

  1. モジュールの先頭に常にOption Explicitを入れてください。変数を宣言し、別のコーダーから取得したものが「組み込み」であるかどうかを確認するのに役立ちます。
  2. 範囲内の最後の行の決定については、this postを参照してください。そのポストから
  3. 、あなたがそのようなコードのあなたの行の前に次のように計算を持っている必要があります...

    LastRow = Sheets("Sheet1").Range("A" & Sheets("Sheet1").Rows.Count).End(xlUp).Row 
    
+0

ああ...わかります。したがって、 'Option Explicit'は自動的な支援になります。ありがとうございました。しかし、私は尋ねなければならない。 「xlUp」とは何ですか? – TheBSITGuy

+0

xlUpは定数で、Excel用のVBAの機能に組み込まれています。 – OldUgly

+0

ありがとうございます。 :) – TheBSITGuy

0

すべてのブックを閉じて再度開くと、コード

以下にしてみてください
Sub test() 
    Dim lastrow As Long 
    lastrow = Range("A" & Rows.Count).End(xlUp).Row 
    ActiveWorkbook.Worksheets("Sheet1").Range("A1:M" & lastrow).Copy Workbooks("Converter.xlsm").Worksheets("Sheet1").Range("A1") 
End Sub 
関連する問題