我想循環瀏覽Worksheet1中的A列並找到第一個具有指定文本「Oil Production」的單元格。這個單元格是我希望複製到Worksheet2的陣列中的第一個單元格。這個單元格和數組的大小會隨時變化,因此我使用的代碼。然後將它粘貼到Worksheet2中的單元格B7中,該單元將永遠不會更改。我們無法粘貼Excel範圍,因爲複製區域和粘貼區域的大小不一樣
這是我的公式。我得到的錯誤在行ActiveSheet.Paste
Sub Test()
Application.ScreenUpdating = False
For Each Cell In Sheets("Sheet1").Range("A:A")
If Cell.Value = "Oil Production" Then
ActiveSheet.Cells.Select
Range(ActiveCell, Cells(ActiveCell.End(xlDown).Row, ActiveCell.End(xlToRight).Column)).Select
Selection.Copy
Sheets("Sheet2").Select
Range("B7").Select
ActiveSheet.Paste
End If
Next
End Sub
改變'ActiveSheet.Cells的範圍內進行的。選擇'到'Cell.Select'將解決您的直接問題。也就是說,這段代碼在許多層面上都存在缺陷:禁用'Application.ScreenUpdating = False'來進行調試會讓你看到你的問題;循環遍歷整個列A是不必要和緩慢的;使用'選擇'是不必要的,緩慢和脆弱[請參閱如何](http://stackoverflow.com/a/10717999/445425) –
感謝您的鏈接和意見 – Steve85