VBA – 工作表对象被隐藏

我有一个非常简单但看似无法解决的问题:我想从工作表复制一系列的数据到另一个。

这是我编造的:

Sub CopyProjectData Worksheets("Projects").Range(Cells(1001, 1), cells(1002,1).Value = Worksheets("Road").Range(Cells(4, 1), Cells(5, 1)).Value End Sub 

(我在范围中使用了Cells(…),因为将来我想使用dynamic范围)

但是,无论我怎样尝试改变语法,该死的事情总是告诉我:

'不能跳转到'工作表',因为它隐藏'

我做错了什么?

最好的问候,Zsolt

如果你尝试这样的事情怎么办?

 Sub CopyRange() Sheets("Projects").Select Range(Range("A13").Value + ":" + Range("B13").Value).Select Selection.Copy Sheets("Road").Select Range("B3").Select ActiveSheet.Paste End Sub 

A13的值包含范围的左上angular单元格的位置。

B13的值包含范围的右下单元格的位置。

范围(B3)是复制数据的目的地的左上angular。

以下是该错误的MSDN页面 。 我想不出为什么你得到它。

我注意到你错过了一个右括号。 直到我修改你的代码,我得到了一个未指定的应用程序错误。

另外,你的代码不是完全限定的,例如,它没有指定Workbook Worksheets在哪个WorkbookCells在哪个Workbook Worksheets中。所以我冒昧地将其完全充实。 如果没有别的,它应该更容易debugging:

 Sub CopyProjectData() Dim cellFrom As Excel.Range Dim cellTo As Excel.Range With ThisWorkbook.Worksheets("Road") Set cellFrom = .Range(.Cells(4, 1), .Cells(5, 1)) End With With ThisWorkbook.Worksheets("Projects") Set cellTo = .Range(.Cells(1001, 1), .Cells(1002, 1)) End With cellTo.Value = cellFrom.Value End Sub 

有时它与保护你的工作表有关。 检查查看标签下是否受到保护。 如果它在Review Label下面显示Unprotect Sheet,那么您可能需要在代码中添加一条命令来解除保护,然后再次保护。

IE浏览器。

 ActiveSheet.Unprotect INSERT CODE HERE FOR YOUR WORKSHEET Active Sheet.Protect