2017-04-07 13 views
0

私のコードで奇妙なエラーが発生します。マクロを実行する前にシートSOHをアクティブにしていないと、セルB1のみコピーされます。& B2他のワークブックテンプレートビルド。VBAアクティブシートに基づいて2つのセルのみをコピー&ペーストする

以下に私の仕事を添付しました。

Public Sub Info_Copy() 
    Dim Lastrow As Integer 
    Dim SOH As Excel.Workbook 
    Set SOH = Workbooks("StockOH") 
    Dim Template As Excel.Workbook 
    Set Template = Workbooks("Template Build") 

Lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row 


SOH.Sheets("NSF").Activate 
Range("B2:B" & Lastrow).Copy 
Template.Sheets("Sheet1").Activate 
    Range("B2").Select 
    ActiveSheet.Paste 
+0

とのワークシートを持つことができ

  • 異なるワークブックマクロを呼び出すときにアクティブなシートの列Aの行を使用しますか?それは 'ラストロー'が何に設定されているかを指示するでしょう。 (アクティブシートが空白の場合は、「B2:B1」をコピーしていることを意味する1に設定されます) – YowE3K

  • +0

    データがあるシート(「StockOH」)をアクティブにする前に、アクティブシートの行を数えます。 – Winterknell

    +0

    @Winterknell、コードによると、 'StockOH'は' Workbook'ではなく 'Workbook'です。そうであれば、OPには「SOH」というワークブックオブジェクトと「SOH」というシートがあります。 OPが混乱するのも不思議ではありません。 – CallumDA

    答えて

    1

    あなたがActiveSheetオブジェクトを使用するので、あなたはアクティブなシート上の行数を数えています。

    アクティブシートを使用する必要がない場合は、と正確にはシートを使用する必要があります。たとえば:

    Lastrow = Workbooks("SomeWorkbook").Worksheets("SomeSheet").Cells(Rows.Count, 1).End(xlUp).Row 
    

    それは伝えることは難しいのですが、私の推測では、あなたは、私がこのような何かの後にyou'rを推測し、この

    Lastrow = SOH.Worksheets("SOH").Cells(Rows.Count, 1).End(xlUp).Row 
    
    +3

    です。 Rows.Count、1).End(xlUp).Row' – user3598756

    2

    ようなものが必要です:作業するとき

    Public Sub Info_Copy() 
        Dim SOH As Excel.Workbook 
        Set SOH = Workbooks("StockOH") 
        Dim Template As Excel.Workbook 
        Set Template = Workbooks("Template Build") 
    
        With SOH.Sheets("NSF") '<--| reference wanted sheet in wanted workbook 
         .Range("B2:B" & .Cells(.Rows.Count, 1).End(xlUp).Row).Copy Destination:=Template.Sheets("Sheet1").Range("B2") '<--| copy its column "B" cells from row 2 down to column A last not empty row and paste it to 'Template' workbook "Sheet1" worksheet from cell B2" 
        End With 
    End Sub 
    

    異なるワークブックの間では、範囲参照をworkbookオブジェクトに限定することが重要です。

    が正しいワークブックを基準にする必要がありますように210の
    • 異なるExcelバージョンのワークブックは、別のシートの行数を有していてもよく、最後で同じ名前

    関連する問題