【问题标题】:From a VBA Excel file open a word template, enter a number and print从 VBA Excel 文件打开一个 word 模板,输入一个数字并打印
【发布时间】:2013-11-26 13:16:26
【问题描述】:

到目前为止,我在问题/解决方案方面取得了巨大成功,并在 excel vba 中获得了很多知识,但我再次陷入了另一种问题。

这是我的场景:

我们在 Excel vba 电子表格中进行序列化和跟踪的样本。可以添加多行,并由序列号标识。发送的每个样本都包含一个信息表,该信息表也是序列化的。现在,一旦我们将序列号输入到 excel 中,我们必须手动将序列号输入到信息表中,打印并重复。这令人沮丧,因为有时我们必须一次发送超过 40 个样本。

我的理想解决方案:

我想使用已有的用户表单进行数据输入,并使用列表框记录输入到电子表格中的所有样本。由此,如果用户决定打印工作表,他可以点击命令按钮来运行宏。此宏将获取列表框项目(一次一个)并将信息输入到 word 模板文件上的特定部分,然后打印它。冲洗并重复。

我真正要问的是: 谁能提供一个通用代码来从excel打开一个word文件,在指定区域输入一行,然后打印它。我现在知道一些 VBA,但这有点超出我的范围,而且有点超出了它。

编辑:通过指定的说明,我希望能够选择列表框中的文本在工作表上的放置位置。理想情况下,它将是右上角和中间右侧。但我需要调整位置使其完美契合! 谢谢您的帮助, A.

【问题讨论】:

  • '在指定区域输入一行,'- 你能澄清一下吗?
  • 我会编辑我的帖子,但它必须在单词表的右上角和中间右侧。因为这些位置是我们现在放置序列号的位置。
  • I know some VBA now, but this is a bit out of my league 但是您还需要向我们展示您的尝试吗?请告诉我们你尝试了什么,你在哪里卡住了?要求代码的问题必须表明对正在解决的问题的最低限度的理解。包括尝试的解决方案、它们为什么不起作用以及预期的结果。另见:Stack Overflow question checklist
  • 顺便说一句,为了让你开始,从 Excel 打开一个 word 文件很容易。最近回答了一个问题HERE。关于Specified Area,您可能想在这些位置插入书签并简单地写信给它?搜索所以,有一些问题显示如何将文本插入书签
  • 感谢您的意见。下次我会尽量主动一点。我只是不明白如何指定 word 文档的部分工作。感谢您的链接,我会好好看看它们!

标签: vba excel ms-word


【解决方案1】:

试试下面的代码。我在里面添加了一些 cmets 来解释您需要更改的内容。

重要!使用代码中建议的选项 1 或选项 2。

Sub OpenWord_Place_Some_Text()

    Dim WRD As Object
    Set WRD = CreateObject("Word.Application")

    'optional line to see Word applicaton
    WRD.Visible = True

    Dim DOC As Object
   'Option 1. for new empty document...:
    Set DOC = WRD.Documents.Add

    'or...
    'Option 2. for existing document
    Set DOC = WRD.Documents.Open("C:\your folder\your document.docx")

    'to place your text precisily in word document do it with TextBox
    'set your LEFT, TOP, WIDTH, HEIGHT parameters based on experiments
    With DOC.Shapes.AddTextbox(msoTextOrientationHorizontal, Left:=100, Top:=100, Width:=100, Height:=100)
        .Line.Visible = msoFalse
        .TextFrame.TextRange.Text = "YOUR TEXT HERE"
    End With

    'set active printer to one you use here
    WRD.ActivePrinter = "PDFCreator"
    'print document
    DOC.PrintOut
    'close document without saving
    DOC.Close False
    'close application
    WRD.Quit
    Set WRD = Nothing

End Sub

【讨论】:

  • 这正是我所需要的。非常感谢!
猜你喜欢
  • 2013-09-30
  • 2013-06-29
  • 1970-01-01
  • 1970-01-01
  • 2022-07-21
  • 1970-01-01
  • 1970-01-01
  • 2020-08-28
  • 1970-01-01
相关资源
最近更新 更多