Excel VBA-工作表对象已隐藏

Excel VBA-工作表对象已隐藏,excel,vba,object,hidden,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 (我在范围内使用了单元格(…),因为将来我想使用动态范围) 然而,无论我如何尝试改变语法,该

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

这是我编造的:

Sub CopyProjectData
Worksheets("Projects").Range(Cells(1001, 1), cells(1002,1).Value = Worksheets("Road").Range(Cells(4, 1), Cells(5, 1)).Value
End Sub
(我在范围内使用了单元格(…),因为将来我想使用动态范围)

然而,无论我如何尝试改变语法,该死的东西总是告诉我:

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

我做错了什么

致以最良好的祝愿,
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的值包含范围左上角单元格的位置

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

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

以下是该错误的原因。我想不出你为什么会得到它

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

此外,您的代码不是完全限定的,例如,它没有指定
工作簿中的
工作表中的
单元格中的
工作表中的
单元格。所以我冒昧地把它充实了一番。如果没有其他内容,则调试应该更容易:

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标签下显示Unprotect Sheet,那么您可能需要在代码中添加一个命令来取消保护,然后在末尾再次进行保护


如果在没有限定工作表引用的情况下使用Cells(),则默认为活动工作表。通常这不是您想要的,因此最好始终在您的代码中限定
Cells()
例如
mySheet.Cells()
。在Tim的评论之后,不限定的引用可能默认为您的个人宏工作簿,如果您存储了Sub,当Excel启动时,这是默认打开和隐藏的。我理解并感谢您的想法。然而,我仍然不太明白Excel的意思:这个或那个被“隐藏”,我也不明白。我希望清理你的代码可以修复它。(在更改代码之前,我确实在使用您的代码时遇到了一个
应用程序
错误,但不是您得到的错误。)我明白了。谢谢你的帮助。我还不了解这个“隐藏”的东西。我使用了一种不同的编码方式,结果它消失了。但现在我又一次陷入了另一个代码,出现了同样的错误。
ActiveSheet.Unprotect

INSERT CODE HERE FOR YOUR WORKSHEET

Active Sheet.Protect