从VBA Excel文件中打开一个单词模板,输入一个数字并打印

时间:2013-11-13 19:04:15

标签: excel vba excel-vba ms-word word-vba

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

以下是我的情景:

我们在excel vba电子表格中进行序列化和跟踪的样本。可以添加多行,并通过序列号识别它们。发送的每个样本都包含一个也已序列化的信息表。现在,一旦我们将序列号输入excel,我们必须在信息表上手动输入序列号,打印并重复。这有点令人费解,因为有时候我们必须一次发送40个样本。

我理想的解决方案:

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

我真正要问的是: 任何人都可以提供从excel打开word文件,在指定区域中输入一行,然后打印它的通用代码。我现在知道一些VBA,但这有点超出了我的联赛,而且有点过时了。

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

1 个答案:

答案 0 :(得分: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