Excel 代码会产生不同的结果,具体取决于我是单步执行代码还是让它直接运行 运行
Excel code produces different results depending on if I step through code or just let it run
我有一段代码循环遍历我工作簿中的所有工作表(第一张除外),并将它们打印成 PDF,使所有列和行都适合单个页面。如果我使用 F8 单步执行代码,这会起作用,但如果我只是让代码 运行 它就像它完全忽略了我的 With ActiveSheet.PageSetup 代码部分并且每个 PDF 输出有两页。
下面是我正在使用的代码(从这个问题的已接受答案中提取和调整:)
Dim ctr
ctr = 2
Do While (ctr <= ActiveWorkbook.Sheets.Count)
On Error Resume Next
ActiveWorkbook.Sheets(ctr).Select
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.25)
.RightMargin = Application.InchesToPoints(0.25)
.TopMargin = Application.InchesToPoints(0.25)
.BottomMargin = Application.InchesToPoints(0.25)
.HeaderMargin = Application.InchesToPoints(0.25)
.FooterMargin = Application.InchesToPoints(0.25)
.Orientation = xlPortrait
.PaperSize = xlPaperLetter
.Zoom = 100
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
Application.PrintCommunication = False
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ActiveWorkbook.Path & "\" & ActiveWorkbook.ActiveSheet.Name & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
ctr = ctr + 1
Loop
我希望无论是 运行 使用 F5 编辑代码还是使用 F8 单步执行代码,它的行为方式都是一样的,但这里似乎不是这种情况,我可以'弄清楚为什么。
更新:Rory 在下面回答了问题,第二个 "Application.PrintCommunication = False" 应该是 "Application.PrintCommunication = True"。
将第二个Application.PrintCommunication = False
改为Application.PrintCommunication = True
我有一段代码循环遍历我工作簿中的所有工作表(第一张除外),并将它们打印成 PDF,使所有列和行都适合单个页面。如果我使用 F8 单步执行代码,这会起作用,但如果我只是让代码 运行 它就像它完全忽略了我的 With ActiveSheet.PageSetup 代码部分并且每个 PDF 输出有两页。
下面是我正在使用的代码(从这个问题的已接受答案中提取和调整:
Dim ctr
ctr = 2
Do While (ctr <= ActiveWorkbook.Sheets.Count)
On Error Resume Next
ActiveWorkbook.Sheets(ctr).Select
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.25)
.RightMargin = Application.InchesToPoints(0.25)
.TopMargin = Application.InchesToPoints(0.25)
.BottomMargin = Application.InchesToPoints(0.25)
.HeaderMargin = Application.InchesToPoints(0.25)
.FooterMargin = Application.InchesToPoints(0.25)
.Orientation = xlPortrait
.PaperSize = xlPaperLetter
.Zoom = 100
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
Application.PrintCommunication = False
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ActiveWorkbook.Path & "\" & ActiveWorkbook.ActiveSheet.Name & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
ctr = ctr + 1
Loop
我希望无论是 运行 使用 F5 编辑代码还是使用 F8 单步执行代码,它的行为方式都是一样的,但这里似乎不是这种情况,我可以'弄清楚为什么。
更新:Rory 在下面回答了问题,第二个 "Application.PrintCommunication = False" 应该是 "Application.PrintCommunication = True"。
将第二个Application.PrintCommunication = False
改为Application.PrintCommunication = True