2017-06-05 7 views
0

私はこれらの2つのワークブックを持っています。- PasteSpecialを使用してデータVBAコードをコピーする

私は、実行時(1004年)のエラーを取得していますワークブック2.

に与えられたシートに最初のワークブックの一部の列のデータを転送したいです。 メソッド「レンジオブジェクトの」ワークシートには、私は、コード

 SummarySheet.Range(columnaddress & "8:" & columnaddress & lastrow).Copy

ここでは完全なコードだで、このライン上のエラーを取得しています

に失敗しました。

Sub RectangleRoundedCorners1_Click() 

    Application.ScreenUpdating = False 

    Dim MacroBook As Workbook, SummaryBook As Workbook, BSSBook As Workbook, _ 
    SummarySheet As Worksheet, TwoGonlyER As Worksheet, threeGswapRoll As Worksheet, _ 
    threeGswapER As Worksheet, fourGprData As Worksheet, threeGpRData As Worksheet 
    Dim onlyER As Range, rolloutER As Range, swapER As Range, prData As Range, _ 
    gPRdata As Range, FolderPathForSummary As String, lastrow As Integer 

    Set MacroBook = ThisWorkbook 

    'Summary Book Open 
    FolderPathForSummary = MacroBook.Worksheets("Tool").Range("D8") 

    FolderPath = MacroBook.Worksheets("Tool").Range("D11") 

    If Dir(FolderPath, vbDirectory) = "" Then 
    MsgBox "Please enter a valid folder path to save the file!" 
    Exit Sub 
    End If 

    If Not Dir(FolderPathForSummary) <> "" Then 
    MsgBox " Summary file doesn't exist in your mentioned address. Please check again! " 
    Exit Sub 
    End If 

    Set SummaryBook = Workbooks.Open(FolderPathForSummary) 
    Set SummarySheet = SummaryBook.Worksheets("Summary Data") 

    lastrow = SummarySheet.Cells(Rows.Count, "A").End(xlUp).Row 

    'BSS Tracker Open 
    Set BSSBook = Workbooks.Add 
    BSSBook.SaveAs (FolderPath & "BSS Tracker " & Format(CStr(Now), "ddmmmyyyyhhmmss") & ".xlsx") 

    MacroBook.Worksheets("2G Only ER").Copy before:=BSSBook.Sheets(1) 
    Set TwoGonlyER = BSSBook.Worksheets("2G Only ER") 

    MacroBook.Worksheets("3G Swap & 4G ROllout ER").Copy before:=BSSBook.Sheets(1) 
    Set threeGswapRoll = BSSBook.Worksheets("3G Swap & 4G ROllout ER") 

    MacroBook.Worksheets("3G & 4G Swap ER").Copy before:=BSSBook.Sheets(1) 
    Set threeGswapER = BSSBook.Worksheets("3G & 4G Swap ER") 

    MacroBook.Worksheets("4G PR Data").Copy before:=BSSBook.Sheets(1) 
    Set fourGprData = BSSBook.Worksheets("4G PR Data") 

    MacroBook.Worksheets("3G PR Data").Copy before:=BSSBook.Sheets(1) 

    Set threeGpRData = BSSBook.Worksheets("3G PR Data") 
    Set swapER = threeGswapER.Range("A3:P3") 

    For Each entry In swapER 

    columnaddress = entry.Value 

    SummarySheet.Range(columnaddress & "8:" & columnaddress & lastrow).Copy 
    entry.PasteSpecial 

    Next entry 

    BSSBook.Save 
    BSSBook.Close 

    SummaryBook.Save 
    SummaryBook.Close 

    MsgBox "BSS Tracker successfully generated!" 

End Sub 
+0

質問に入力した内容がVBEからコピー/貼り付けされた場合、コードは機能しません。 – YowE3K

+0

私は2つのワークブックを持っています。ワークブック1の希望の列のデータをワークブックのシートに転送したいと思います。2.コードに誤りがあります。 [リンク](1drv.ms/f/s!AlgPDzGNgeAvgRiR7PqmpUg46TnW) –

+0

メインの質問にコメントにリンクを追加しました。光の書き換えのビット。あなたが得ているエラーが何であるかを教えていただければ、答えを見つけるのに役立つかもしれません。 – LondonRob

答えて

0

コードごとに、columnaddressは列文字を保持する文字列変数でなければなりません。同様

ソースシートと宛先シートを参照するエントリシートを参照するSummarySheetのような他の変数もあります。

変数lastrowは、データを持つ最後の行を参照する長い変数である必要があります。

は、もしそうならLASTROWは、次の行ごとに「A」25および列アドレスである

SummarySheet.Range(columnaddress & "8:" & columnaddress & lastrow).Copy 

言う次に範囲A8さ:A25 SummarySheetからはコピーされ、エントリーシートにペーストしています。

+0

私は2つのワークブックを持っています。ワークブック1の希望する列のデータをワークブックのシートに転送したいと思います。2.コードに誤りがあります。 [リンク](https://1drv.ms/f/s!AlgPDzGNgeAvgRiR7PqmpUg46TnW) –

+0

@AamirHussainそれはまったく別の質問です。私はあなたの元の質問に答えました。新しい要件がある場合は、新しい質問を開いてください。また、あなたの質問にSolvedと印を付けるために答えを受け入れる時間をとってください。 :) – sktneer

+0

私の質問は同じです。私はコードでエラーが発生しています。最初に私はエラーが発生しているコードラインを投稿し、あなたは私に答えを出しましたが、まだ私は完全なコードのExcelのリンクを投稿する理由は不明です –

関連する問題