2014-04-28 100 views
0

我得到了此代碼以使用兩張工作表。會複製數據的罰款,但後來我去改變名稱,實際工作表,我會用它和sopped工作。兩個工作簿都是開放的,並且在與他們一起工作時將會打開。將數據從一個工作簿複製到另一個工作簿的最後一行

Sub copypasteover() 
Dim wb1 As Workbook, wb2 As Workbook, LR As Long 
Set wb2 = Workbooks("TS-141260 Data Dump C312H ABC Tester.xls") 
Set wb1 = ThisWorkbook 
LR = wb2.Sheets("Data Dump").Range("B" & Rows.Count).End(xlUp).Row 
wb1.Worksheets("Data Origin").Range("A36:c36").Copy Destination:=wb2.Worksheets("Data Dump").Range("B" & LR + 1) 
Application.CutCopyMode = False 
End Sub 

它將停止在這一部分:

LR = wb2.Sheets("Data Dump").Range("B" & Rows.Count).End(xlUp).Row 

代碼的目的是從一個工作簿複製某一範圍並粘貼到另一個人的最後一個空行。

我試着在工作表上的工作表上的代碼中更改了名稱,但它仍然存在錯誤。它與第二個工作簿名稱的長度有什麼關係,或者與第二個工作簿名稱的距離有什麼關係?

簿之一:拷貝paste.xlsm 表在工作簿之一:數據源(按鈕運行該腳本)

簿2:TS-141260數據轉儲C312H ABC Tester.xls 表在工作簿2:數據轉儲

爲什麼它會一直停在那裏,我該如何修復它才能工作? 謝謝。

+0

'它會停在這部分'並沒有多大幫助..你看到了什麼錯誤? –

+0

運行時錯誤'1004':應用程序定義或對象定義的錯誤。是我收到的錯誤 – DA69

+1

嘗試'LR = wb2.Sheets(「Data Dump」)。Range(「B」&wb2.Sheets(「Data Dump」).Rows.Count).End(xlUp).Row ' –

回答

0

使用的細胞,而不是範圍:

LR = wb2.Sheets("Data Dump").Cells(Rows.Count,2).End(xlUp).Row 
1

我注意到,你的第二個工作簿具有xls擴展:"...Tester.xls"。但xls工作簿只有65536行,而xlsx/xlsm - 1048576行。

Range("B" & Rows.Count)部分Rows.Count指的是活動工作表,似乎活動工作表屬於ThisWorkbook,其中有1048576行。所以請使用下面的代碼:

With wb2.Sheets("Data Dump") 
    LR = .Range("B" & .Rows.Count).End(xlUp).Row 
End With 
+0

如果我將LR = wb2.Sheets(「Data Dump」)。Range(「B」&Rows.Count).End(xlUp).Row替換爲您在此處出現的錯誤。但是你上面的那個確實如此。也許我不確定如何使用這個新的。 – DA69

+0

另外,我怎樣編輯這個從B17開始,然後往下走,而不是從B1開始?感謝您的幫助 – DA69

+0

1)您是否按照我使用的方式使用它:with'with'語句? 2)使用'LR = Application.Max(17,.Range(「B」&.Rows.Count).End(xlUp).Row)' –

相關問題