VBA - 隐藏工作表对象

时间:2013-08-15 13:47:42

标签: excel vba object hidden

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

这就是我所做的:

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

(我在范围内使用了单元格(...),因为将来我想使用动态范围)

然而 - 无论我如何尝试改变语法 - 该死的东西一直在告诉我:

'无法跳转到'工作表',因为它隐藏了'

我做错了什么?

最诚挚的问候, 泽索特

3 个答案:

答案 0 :(得分:0)

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

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的值包含范围左上角单元格的位置。

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

范围(B3)是复制数据的目标位置的左上角。

答案 1 :(得分:0)

这是该错误的MSDN page。我想不出你为什么会得到它。

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

此外,您的代码并非完全合格,例如,它未指定Workbook所在的WorksheetsSheet所属的Cells。所以我冒昧地充实了它。如果没有别的,它应该更容易调试:

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

答案 2 :(得分:0)

有时它与保护工作表有关。检查它是否受“检查”选项卡保护。如果它在Review Label下面显示Unprotect Sheet,那么您可能必须在代码中添加一个命令来取消保护,然后再次保护。

IE中。

ActiveSheet.Unprotect

INSERT CODE HERE FOR YOUR WORKSHEET

Active Sheet.Protect