2012-12-23 151 views
2

好的,我一直在研究這個問題大約4個小時。我有另一個類似的帖子解決了一個問題,只是爲了創建另一個。該代碼從2個電子表格中獲取同一列數據。第一個複製/粘貼效果很好(並且填充行A2:A191),但是之後的第一個循環從行A1332開始粘貼電子表格中的數據? A192:A1331的所有單元都是空白的。代碼應該是從底部尋找第一個可用的空單元格。我錯過了什麼?將數據從一個電子表格複製/粘貼到另一個電子表格

下面是有問題的代碼。我已經驗證它解鎖了第二個循環電子表格範圍單元格,但之後它將其粘貼錯誤?格式化似乎不成問題?有沒有可能出現在我看不到的細胞中?

Set wbkCS = Workbooks.Open(strCutSheetFile(i)) 
     On Error GoTo 0 
     Set wbkVer = Workbooks.Open(strVerifyFile) 
     Set copyRng = Worksheets("Cutsheets").Range("A2") 
    If copyRng = "" Then 
      wbkCS.Worksheets("Cut Sheet").Range("S4:S2000").Locked = False 
      wbkCS.Worksheets("Cut Sheet").Range("S4:S2000").Copy Destination:=wbkVer.Worksheets("Cutsheets").Range("A2") 
    Else 
      wbkCS.Worksheets("Cut Sheet").Range("S4:S2000").Locked = False 
      wbkCS.Worksheets("Cut Sheet").Range("S4:S2000").Copy Destination:=wbkVer.Worksheets("Cutsheets").Range("A" & Range("A65536").End(xlUp).Row + 1) 
    End If 
+1

檢查粗人的答案。但是,如果添加UserInterfaceOnly = true,則在保護電子表格時,您不需要鎖定/解鎖,因爲工作表僅鎖定了用戶而不是VBA自動化。 – InContext

回答

2

預選賽嘗試在你的第二個副本的語句代替

.Range("A" & Range("A65536").End(xlUp).Row + 1) 

最後的參考範圍,即:嘗試

.Range("A" & wbkVer.Worksheets("Cutsheets").Range("A65536").End(xlUp).Row + 1) 
+0

就是這樣!謝謝! ---但我不確定我明白爲什麼? – Mike

+1

您可能會升級到下一版本的Excel,因此我不會在'A65536'中進行硬編碼...而是將代碼更改爲'.Range(「A」&wbkVer.Worksheets(「Cutsheets」)) .Cells(Rows.count,1).End(xlUp).Row + 1)' – whytheq

相關問題