我在Excel 2013上有一个VBA宏,它可以生成一个单独的Excel报告。在创建的此excel报表中,我想关闭网格线。
我遇到的实现这一点的唯一代码如下所示
ActiveWindow.DisplayGridlines = False
但是,此Excel是在后台生成的,即,
Dim appObject As New Excel.Application
appObject.Visible = False
这意味着此报表不是ActiveWindow。有没有不使用ActiveWindow对象而关闭网格线的替代方法?
4条答案
按热度按时间d5vmydt91#
如果您有对工作簿的引用,则可以遍历其集合中的所有Windows。如果应用程序不可见,你应该只得到1,但这比硬编码索引更安全:
请注意,这将设置更改工作簿中活动工作表的显示-为什么这是窗口的属性,而不是工作表超出了我。
编辑:
感谢@Tim分享的链接,我意识到我已经完全隔开了
SheetViews
集合。这将关闭任意Worksheet
对象的网格线:iyr7buue2#
ActiveWindow是Windows对象集合的成员。与任何集合一样,只需通过名称而不是通过指定活动窗口来引用实际窗口。例如
luaexgnf3#
我们可以按照“共产国际”的建议去做,或者激活想要的表单,在一个循环中执行足够的代码行。我尝试了几种方法上面发布的代码,我发布了最适合我的代码片段:
任何反馈都非常欢迎
yhqotfr84#
为什么要使用一行代码,而你可以使用20行?