excel - 仅打印选定的工作表...但活动工作表继续打印
问题描述
我正在尝试遍历所有活动工作表并将它们另存为单独的 PDF。
dim ws as worksheet
dim path as string
...
For Each ws In ActiveWindow.SelectedSheets
ws.ExportAsFixedFormat _
xlTypePDF, _
Filename:=path & ws.Name, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=False, _
IgnorePrintAreas:=False, _
OpenafterPublish:=False
Next
它有点工作:
为正确文件夹中的每个选定工作表创建一个 PDF 文件...但是...
这些PDF文件的内容都是一样的。它是每次打印的活动表,但文件名不同。
如何解决这个问题?请记住,我只想打印选定的工作表。
编辑:我太新了,无法投票。感谢您的回答!
解决方案
您需要Select
在打印之前将工作表。ws.Select
只需在之前添加命令ws.ExportAsFixedFormat
,它就会起作用:
For Each ws In ActiveWindow.SelectedSheets
ws.Select '<-- the only thing you have to add.
ws.ExportAsFixedFormat _
xlTypePDF, _
Filename:=path & ws.Name, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=False, _
IgnorePrintAreas:=False, _
OpenafterPublish:=False
Next
除此之外:
- 提示 1:为避免看到纸张反复跳跃,您可以
Application.ScreenUpdating = False
在循环开始之前添加,然后将其设置回Application.ScreenUpdating = True
循环结束时。 - 提示 2:为了用户友好,您可以在循环开始时获取当前活动的工作表,
Dim currentlySelectedSheet As Worksheet: Set currentlySelectedSheet = ActiveSheet
当循环结束时,您只需将其选择回来,currentlySelectedSheet.Select
以便用户在运行宏时不会在屏幕上看到任何变化.
推荐阅读
- python - Python 列表基础知识
- c++ - 关于将迭代器传递给函数的 C++ 令人尴尬的问题
- linux - 如何从linux中的数字和单词列表中取出数值
- python - 如何在python列表中的特定字符后删除一些单词
- python - 如何在pytest的setup_function和teardown_function中使用fixture
- flutter - Flutter 在 BottomNavigationBarItem 之间发送和显示数据
- javascript - 为什么 React 没有实时更新状态和显示?
- c++ - 没有模板的懒惰初始化静态 std::array
- javascript - 使用 Rough-Notation 库注释 RoughViz 图表
- python - 如何使用flask socketio从redis pubsub监听器发出