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