如何使用VBA仅打印Word文档中的第一页?

时间:2016-11-29 08:46:45

标签: vba excel-vba excel

我希望有人可以帮助我。在工作中,我们为CNC机器制作程序。这些是文字文档。它们保存在以机器命名的文件夹中。我已经创建了一个用户窗体,您可以在其中选择机器并填写程序编号。单击“确定”后,将打开所需的所有程序。 (这成功地工作) 然后我想要打印所有打开程序的第一页。这是卡住的地方。请参阅下面的代码。

If Len(programbox.Value) = 1 Then zeros = "00000"
If Len(programbox.Value) = 2 Then zeros = "0000"
If Len(programbox.Value) = 3 Then zeros = "000"
If Len(programbox.Value) = 4 Then zeros = "00"
If Len(programbox.Value) = 5 Then zeros = "0"
If Len(programbox.Value) = 6 Then zeros = ""

Set wordapp = CreateObject("word.application")
If machinebox.Value = "CTX510" Then letter = "C"
If machinebox.Value = "CTX510" Then machinebox.Value = "CTX510\program"
If machinebox.Value = "Lu25" Then letter = "F"
If machinebox.Value = "LB45" Then letter = "N"


set objdoc1 = wordapp.documents.Open "\\path\Machine\" & machinebox.Value & "\" & letter & "1" & zeros & programmabox.Value & ".OPT"
set objdoc2 = wordapp.documents.Open "\\path\Machine\" & machinebox.Value & "\" & letter & "2" & zeros & programmabox.Value & ".OPT"
set objdoc3 = wordapp.documents.Open "\\path\Machine\" & machinebox.Value & "\" & letter & "3" & zeros & programmabox.Value & ".OPT"

objdoc1.printout
objdoc2.printout
objdoc3.printout

这打印出整个文档。我在互联网上搜索过,但无法找到我如何将其更改为仅第一页。

1 个答案:

答案 0 :(得分:1)

你可以试试这个小的(未经测试的)重构你的代码:

stage "first stage"
   node ('master'){
      try{
         env.Env_number = readFile 'file_containing_an_integer_between_2_and_7.txt'
      catch(error)
         echo "failed to set variable Env_number "
            }}

stage "second stage"
   node("DEV${Env_number}") {
      try{
         command1
         command2 
            }}

我在哪里:

  • 使用Dim iLetter As Long Dim letter As String Dim objdoc As Object Select Case machinebox.Value Case "CTX510" letter = "C" machinebox.Value = "CTX510\program" Case "Lu25" letter = "F" Case "LB45" letter = "N" End Select With CreateObject("word.application") For iLetter = 1 To 3 Set objdoc = .documents.Open("\\path\Machine\" & machinebox.Value & "\" & letter & iLetter & Format(programbox.Value, "000000") & ".OPT") objdoc.PrintOut Pages:="1" objdoc.Close False Next iLetter End With 函数将数字从Format()正确格式化为带有前导零的6位数字

  • 使用programbox块在不同Select Case .... End Select个案例之间切换

  • 实例化“临时”Word应用程序对象

  • 使用1到3的循环,而不是重复相同语句的三次