Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 14920|回复: 8

[已解决]同一个excel文件中的多个工作表怎么打印成一个pdf文件(excel2010)

[复制链接]
发表于 2013-4-29 17:36 | 显示全部楼层 |阅读模式
设计了一个窗口,如图:
pdf.PNG
如何能当用户不勾选时,将sheet10,sheet3和sheet4打在同一个pdf文档中
如果勾选了就再相应增加(勾选第四个则sheet1也打印,勾选第五个则sheet5打印)

我写的:
Private Sub CommandButton2_Click()
    Dim shprinte As Worksheets
    If CheckBox4.Value Then
        If CheckBox5.Value Then
            shprinte = Sheets(Array("sheet10", "sheet3", "sheet4", "sheet1", "sheet5"))
        Else
            shprinte = Sheets(Array("sheet10", "sheet3", "sheet4", "sheet1"))
        End If
    ElseIf CheckBox5.Value Then
        shprinte = Sheets(Array("sheet10", "sheet3", "sheet4", "sheet5"))
    Else
        shprinte = Sheets(Array("sheet10", "sheet3", "sheet4"))
    End If
    shprinte.Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & TextBox1.Text & "Résultats.PDF", openafterpublish:=True
    Load Me
End Sub

但是总是提示shprinte这个句子有问题,问什么?

谢谢!



最佳答案
2013-4-29 18:31
学习了,方法不错。
  1. Private Sub CommandButton2_Click()
  2.     Dim shprinte As object
  3.     If CheckBox4.Value Then
  4.         If CheckBox5.Value Then
  5.             Set shprinte = Sheets(Array("sheet10", "sheet3", "sheet4", "sheet1", "sheet5"))
  6.         Else
  7.             Set shprinte = Sheets(Array("sheet10", "sheet3", "sheet4", "sheet1"))
  8.         End If
  9.     ElseIf CheckBox5.Value Then
  10.         Set shprinte = Sheets(Array("sheet10", "sheet3", "sheet4", "sheet5"))
  11.     Else
  12.         Set shprinte = Sheets(Array("sheet10", "sheet3", "sheet4"))
  13.     End If
  14.     shprinte.Select
  15.     ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "" & TextBox1.Text & "Résultats.PDF", openafterpublish:=True
  16.     Load Me
  17. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-4-29 18:16 | 显示全部楼层
本帖最后由 hwc2ycy 于 2013-4-29 18:17 编辑

打印的时候打印整个工作簿。
回复

使用道具 举报

发表于 2013-4-29 18:17 | 显示全部楼层
回复

使用道具 举报

发表于 2013-4-29 18:20 | 显示全部楼层
打印的时候,貌似要么是活动工作表,要么是整个工作簿,要么是区域了。
回复

使用道具 举报

发表于 2013-4-29 18:22 | 显示全部楼层
你可以这样,把不需要打印的工作表先隐藏,然后打印整个工作簿(隐藏的不会被打印出来)
这样也可以。

回复

使用道具 举报

发表于 2013-4-29 18:22 | 显示全部楼层
打印完后记得还原隐藏的工作表就成了。
回复

使用道具 举报

发表于 2013-4-29 18:26 | 显示全部楼层
黄色显示的部分,用SET 来赋值。

回复

使用道具 举报

发表于 2013-4-29 18:31 | 显示全部楼层    本楼为最佳答案   
学习了,方法不错。
  1. Private Sub CommandButton2_Click()
  2.     Dim shprinte As object
  3.     If CheckBox4.Value Then
  4.         If CheckBox5.Value Then
  5.             Set shprinte = Sheets(Array("sheet10", "sheet3", "sheet4", "sheet1", "sheet5"))
  6.         Else
  7.             Set shprinte = Sheets(Array("sheet10", "sheet3", "sheet4", "sheet1"))
  8.         End If
  9.     ElseIf CheckBox5.Value Then
  10.         Set shprinte = Sheets(Array("sheet10", "sheet3", "sheet4", "sheet5"))
  11.     Else
  12.         Set shprinte = Sheets(Array("sheet10", "sheet3", "sheet4"))
  13.     End If
  14.     shprinte.Select
  15.     ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "" & TextBox1.Text & "Résultats.PDF", openafterpublish:=True
  16.     Load Me
  17. End Sub
复制代码
回复

使用道具 举报

发表于 2013-4-29 18:34 | 显示全部楼层
本帖最后由 hwc2ycy 于 2013-4-29 18:58 编辑

shprinte定义object类型,否则会报类型不匹配的错。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 05:35 , Processed in 0.661261 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表