3 回答

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
也許您的代碼在Sheet1后面,所以當(dāng)您將焦點(diǎn)更改為Sheet2時(shí),找不到對(duì)象嗎?在這種情況下,只需指定目標(biāo)工作表可能會(huì)有所幫助:
Sheets("Sheet1").Range("C21").Select
我對(duì)Select的工作方式不是很熟悉,因?yàn)槲冶M量避免使用它:-)。您可以定義和操作范圍,而無需選擇它們。明確說明您引用的所有內(nèi)容也是一個(gè)好主意。這樣,如果您從一個(gè)工作表或工作簿轉(zhuǎn)到另一個(gè)工作表或工作簿,就不會(huì)迷路。嘗試這個(gè):
Option Explicit
Sub CopySheet1_to_PasteSheet2()
Dim CLastFundRow As Integer
Dim CFirstBlankRow As Integer
Dim wksSource As Worksheet, wksDest As Worksheet
Dim rngStart As Range, rngSource As Range, rngDest As Range
Set wksSource = ActiveWorkbook.Sheets("Sheet1")
Set wksDest = ActiveWorkbook.Sheets("Sheet2")
'Finds last row of content
CLastFundRow = wksSource.Range("C21").End(xlDown).Row
'Finds first row without content
CFirstBlankRow = CLastFundRow + 1
'Copy Data
Set rngSource = wksSource.Range("A2:C" & CLastFundRow)
'Paste Data Values
Set rngDest = wksDest.Range("A21")
rngSource.Copy
rngDest.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Bring back to top of sheet for consistancy
wksDest.Range("A1").Select
End Sub

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
這樣的事情我也經(jīng)歷過。在我的情況下,大多數(shù)工作表都處于保護(hù)模式(盡管與宏相關(guān)的單元已解鎖)。當(dāng)我在工作表上禁用保護(hù)時(shí),宏工作正?!坪鮒BA不喜歡鎖定的單元格,即使宏未使用它們也是如此。
添加回答
舉報(bào)