我编写了一个基本例程,可以执行一些页面格式化操作(设置页眉和页脚等)。该例程将工作表作为第一个参数:
Sub FormatSheet(Optional ws As Worksheet = Nothing, _
Optional language As String = "Deutsch", _
...)
Run Code Online (Sandbox Code Playgroud)
一切都工作得很好,直到今天有人有了一本带有工作表的工作簿Chart。由于您也可以为这样的工作表设置所有属性,因此我对自己说“好吧,没问题,我会将参数类型更改Sheet为Worksheet- 问题已解决”。但是,我找不到任何此类Sheet- 类。
我的解决方法是将参数类型更改为Object- 这有效。但是,我不太喜欢这种尝试,因为对象可以是任何东西,并且我想明确仅允许 - uuhm Sheets。当然,我可以通过检查对象类型等来解决这个问题,但我的基本问题是:Excel/VBA 中是否有任何工作表的“父”类类型?
没有,因为没有必要。
如果 的目的FormatSheet是配置工作表的PageSetup,则采用PageSetup参数而不是整个Worksheet。
类Chart,例如Worksheet,具有PageSetup类型 的属性PageSetup。
参见最少知识原理/迪米特法则:给出完成其工作所需的尽可能少的程序。您不需要整体Worksheet来配置PageSetup。