2016-10-06 59 views
0

我收到以下錯誤運行時得到錯誤,而在不同的工作,但是,同一工作簿

error'1004' 運行宏,範圍類的選擇方法失敗

當試圖運行以下代碼在不同的工作表上,但在同一工作簿上。

Sub AdministrationReport() 

Dim report    As Workbook 
Dim admiistration  As Workbook 
Dim wbPath    As String 

'report is the active workbook where data is being pasted 
Set report = ActiveWorkbook ' (till here it opens new workbook - I have deleted that code to shorten the question) 

' set administration to Open workbook from where data will be copied 
Set administration = Workbooks.Open(wbPath) 
administration.Worksheets("Administration_POWHS Standardis").Range("A2:j100").Copy Destination:=report.Worksheets("administration").Range("A2:j100") 
ActiveWorkbook.Close 

'this is to format report data  
Set report = ActiveWorkbook 

**report.Worksheets("administration").Range("a2:d100").Select**- stuck here 

With Selection 
    .HorizontalAlignment = xlLeft 
    .VerticalAlignment = xlCenter 
    .WrapText = True 
    .Orientation = 90 
    .ReadingOrder = xlContext 
End With 

回答

1

你不需要Select的範圍,只需要使用下面的With聲明(它會爲你運行它的工作來自每張紙):

With report.Worksheets("administration").Range("A2:D100") 
    .HorizontalAlignment = xlLeft 
    .VerticalAlignment = xlCenter 
    .WrapText = True 
    .Orientation = 90 
    .ReadingOrder = xlContext 
End With 
+0

@ Shai Rado是因爲使用.select是衝突的,因爲我們一次只能選擇一張作爲活動工作表? – vj12

+0

@Vijay如果您想要在不同於當前設置爲「ActiveSheet」的表格上選擇一個範圍,那麼您需要先選擇該表格,然後選擇範圍。無論如何,建議儘可能避免使用「選擇」和「激活」(如我的回答)。它現在對你有用嗎? –

+0

是的它現在工作得很好,謝謝你詳細解釋,非常有幫助 – vj12

1

您是否嘗試過加入

report.Worksheets("administration").Select 

report.Worksheets("administration").Range("a2:d100").Select 
+0

@ AjCorneel謝謝,它也工作 – vj12

相關問題