1

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

这是我的场景:

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

我的理想解决方案:

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

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

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

4

1 回答 1

3

尝试使用以下代码。我在里面添加了一些评论来解释你需要改变什么。

重要的!使用代码中建议的选项 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-11-13T19:27:41.560 回答