gpt4 book ai didi

vba - 在Excel VBA中,如何删除灰色分页符?

转载 作者:行者123 更新时间:2023-12-01 17:44:22 25 4
gpt4 key购买 nike

问题:

如何使用 VBA 代码从 Excel 工作表中删除灰色虚线分页符(不是蓝色的分页符)?

背景:

我们有一组通过 VBA 生成的 ODBC 电子表格。当在我的本地机器上运行两个不同(尽管相似)的电子表格而不手动更改 Excel 中的任何选项时,一个在分页符上显示灰色虚线(见下图),而另一个则没有。两者都足够大,可以超过一页。我无法找到代码中的差异来解释这一点。

互联网上的大多数建议都指向通过 GUI 在 Excel 中提供的选项,但这不是一个选项。我正在寻找 VBA 解决方案。

我尝试过的:

我尝试了 DisplayPageBreaks = False 的几种不同变体和应用。要么是我使用不当,要么是设置不正确。我对该属性最合理的使用是:

ActiveWorkbook.Worksheets(str_Worksheet_Name).DisplayPageBreaks = False

请注意,变量 str_Worksheet_Name 在代码中的许多其他行中都起作用,例如:ActiveWorkbook.Worksheets(str_Worksheet_Name).Cells(1, 1).Select 正确选择所需工作表上的单元格 A1

引用图片:

这些是我试图删除的行:

enter image description here

提前致谢。

<小时/>

其他信息:

  • RE Mat 的马克杯评论:

听起来此代码片段中的某些内容阻止了它们显示在此电子表格上。请注意,此代码段来自正确显示分页符的工作表:

Public Function cmlapi_Set_To_Landscape()

On Error Resume Next
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.75)
.RightMargin = Application.InchesToPoints(0.75)
.TopMargin = Application.InchesToPoints(1)
.BottomMargin = Application.InchesToPoints(1)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperLetter
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
End With
If glob_Header_On_Every_Page = True Then
With ActiveSheet.PageSetup
.PrintTitleRows = "$1:$" & HEADER_OFFSET
End With
End If
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1

End Function
  • 根据 Mat's Mug 的回答:

    With ActiveSheet.PageSetup
    .Orientation = xlLandscape
    .FitToPagesTall = 1
    .FitToPagesWide = 1
    End With

这方面运气不佳。线条还在那里。请注意,.Orientation = xlLandscape 确实有效,因此不必担心代码中指定的位置。

  • 根据 Vidyata 的回答:

ActiveSheet.DisplayPageBreaks 在电子表格运行后的立即窗口 (Ctrl + G) 中工作。重新运行会使虚线再次恢复。奇怪的是,在代码中使用相同的属性似乎没有效果,但显然是正确的代码。也许有一个特定的地方需要它?我本以为只要在选择正确的工作表时使用 ActiveSheet 或指定我的工作表名称,就没什么关系了。

有人进一步建议我在最后一行尝试一下。想法不错,但也没成功。在两个单独的试验中在最后一行尝试了这两种方法:

ActiveWorkbook.Worksheets(str_Worksheet_Name).DisplayPageBreaks = FalseActiveSheet.DisplayPageBreaks = False

  • 我尝试使用上面的 PageSetup 代码。那也没有做到。
<小时/>

解决方案:请参阅 Mat 的马克杯的答案。 FitToPagesTall = 1FitToPagesWide = 1 在设置 Zoom = False 后也有效。我羞愧地承认,我很惊讶自己没有早点发现这一点,因为它在 Microsoft 的开发网络网站上有明确的说明:

链接:MSDN Info

代码:

 .Zoom = False 
.FitToPagesTall = 1
.FitToPagesWide = 1

不确定为什么需要 Zoom 行,但这正是缺少的部分。

感谢所有提供帮助的人!

最佳答案

尝试删除任何 Zoom,然后缩放 PageSetup 以适合单个页面:

ActiveSheet.PageSetup.Zoom = False
ActiveSheet.PageSetup.FitToPagesTall = 1
ActiveSheet.PageSetup.FitToPagesWide = 1

这应该可以消除虚线。

关于vba - 在Excel VBA中,如何删除灰色分页符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47911404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com