2017-07-19 12 views
0

我寫了一個宏,應該將一個工作簿中的一系列數據複製到另一個工作簿中。另一個工作簿中的工作表受密碼保護,但如果我手動複製並過去,它允許我這樣做。但是,當我嘗試將它寫入我的宏時,它將不允許粘貼。無法使用VBA粘貼到受保護的工作表中,但可以手動執行

代碼當前如下:

Sub COPYT() 
' 
' COPYT Macro 

    Range("B2:U109").Select 
    Selection.Copy 
    Workbooks.Open Filename:= _ 
     "_FileName_.xls" 
    Windows("_FileName_.xls").Activate 
    Range("H10").Paste 

End Sub 

當我運行宏作爲是,我得到一個

運行時錯誤「438」:「對象不支持此屬性或方法」

和調試器顯示,問題出在最後一行Range("H10").Paste

我不能解除工作表(合規性),我可以通過運行宏然後CTRL + V顯然得到這一點,但(因爲這允許我粘貼....),但我寧願這一點是自動的。由於工作表受到保護,是否需要用於粘貼命令的不同語法?

謝謝

+0

手動複製/粘貼時,是否使用與宏相同的範圍? –

+0

是的一切都一樣。事實上,如果我讓宏失敗,那麼我可以直接擊打CTRL + V,並完成了我的工作。 – user8330875

+0

我不明白如果表格受到保護,如何使用Ctrl + V粘貼。 – SJR

回答

0

粘貼是工作表的一種方法,而不是範圍。嘗試這個。我假定表單參考,但您可能需要調整。

Sub COPYT() 

Dim wb As Workbook 

Set wb = Workbooks.Open(Filename:="_FileName_.xls") 
wb.Sheets("compliance").unprotect  
ThisWorkbook.Sheets(1).Range("B2:U109").Copy wb.Sheets("compliance").Range("H10") 
wb.Sheets("compliance").protect 

End Sub 
+0

嗨SJR。謝謝,但這不會工作,因爲工作表不只是保護,它有一個密碼,就像我上面說過的,我無法取消保護工作表。 – user8330875

+0

好的,抱歉沒有正確閱讀你的問題。你知道它是如何被保護的嗎?你可以不保護它,因爲你沒有密碼? – SJR

+0

沒錯,沒有密碼。我可以投入一些代碼來打開它,但由於公司合規性,我並不想這麼做...... – user8330875

相關問題