【问题标题】:VBA - worksheet object is hiddenVBA - 工作表对象被隐藏
【发布时间】:2013-08-15 13:47:41
【问题描述】:

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

这是我编的:

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(...),因为将来我想使用动态范围)

但是——不管我如何尝试改变语法——这该死的东西一直在告诉我:

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

我做错了什么?

最好的问候, Zsolt

【问题讨论】:

  • 当您使用没有合格工作表引用的 Cells() 时,它默认为活动工作表。通常这不是您想要的,因此最好始终限定Cells(),例如。 mySheet.Cells() 在您的代码中
  • 进一步补充 Tim 的评论,如果您存储了 Sub 的个人宏工作簿,则不合格的引用可能默认为您的个人宏工作簿,并且在 Excel 启动时默认打开和隐藏。

标签: excel vba object hidden


【解决方案1】:

如果你尝试这样的事情会怎样。

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

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

【讨论】:

    【解决方案2】:

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

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

    另外,您的代码不是完全合格的,例如,它没有指定 WorkbookWorksheets 在哪个 SheetCells 在哪个。所以我冒昧地完全充实出来。如果没有别的,它应该更容易调试:

    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
    

    【讨论】:

    • 我理解并感谢您的想法。但是我还是不太明白 Excel 的意思:这个或那个被“隐藏”了。
    • 我也没有。我希望清理你的代码可以解决它。 (在更改代码之前,我确实在使用您的代码时遇到了 Application 错误,但不是您得到的那个。)
    • 我明白了。谢谢你的帮助。我仍然无法理解这个“隐藏”的东西。我使用了一种不同的编码方式,它消失了。但是现在我又一次陷入了另一个代码,同样的错误。
    【解决方案3】:

    有时这与保护您的工作表有关。检查它是否在 Review 选项卡下受到保护。如果它在 Review 标签下显示 Unprotect Sheet,那么您可能需要在代码中添加一个命令来取消保护,然后在最后再次保护。

    即。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多