gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 20:11:38 25 4
gpt4 key购买 nike

我希望有人可以帮助我。在工作中,我们为 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

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

最佳答案

您可以尝试对代码进行这种小(未经测试)重构:

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()正确格式化 programbox 中的数字的函数到 6 位数字,前导零
  • 使用了 Select Case .... End Select阻止在不同 machinebox.Value 之间切换案例
  • 实例化一个“临时”Word 应用程序对象
  • 使用从 1 到 3 的循环,而不是将同一语句重复三次
  • 关于vba - 如何使用 VBA 仅打印 Word 文档的第一页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40861322/

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