3 回答
TA贡献1998条经验 获得超6个赞
也许您的代码在Sheet1后面,所以当您将焦点更改为Sheet2时,找不到对象吗?在这种情况下,只需指定目标工作表可能会有所帮助:
Sheets("Sheet1").Range("C21").Select
我对Select的工作方式不是很熟悉,因为我尽量避免使用它:-)。您可以定义和操作范围,而无需选择它们。明确说明您引用的所有内容也是一个好主意。这样,如果您从一个工作表或工作簿转到另一个工作表或工作簿,就不会迷路。尝试这个:
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贡献1799条经验 获得超9个赞
这样的事情我也经历过。在我的情况下,大多数工作表都处于保护模式(尽管与宏相关的单元已解锁)。当我在工作表上禁用保护时,宏工作正常……似乎VBA不喜欢锁定的单元格,即使宏未使用它们也是如此。
- 3 回答
- 0 关注
- 1448 浏览
相关问题推荐
添加回答
举报