到目前为止,我已经在问题/解决方案方面取得了很大的成功,并且在excel vba中获得了大量的知识,但我又一次陷入了另一种问题。
以下是我的情景:
我们在excel vba电子表格中进行序列化和跟踪的样本。可以添加多行,并通过序列号识别它们。发送的每个样本都包含一个也已序列化的信息表。现在,一旦我们将序列号输入excel,我们必须在信息表上手动输入序列号,打印并重复。这有点令人费解,因为有时候我们必须一次发送40个样本。
我理想的解决方案:
我想获取用于数据输入的用户表单,并使用列表框记录输入到电子表格的所有样本。由此,如果用户决定打印纸张,他可以点击命令按钮来运行宏。此宏将获取列表框项(一次一个)并将信息输入到单词模板文件上的特定部分,然后将其打印出来。冲洗并重复。
我真正要问的是: 任何人都可以提供从excel打开word文件,在指定区域中输入一行,然后打印它的通用代码。我现在知道一些VBA,但这有点超出了我的联赛,而且有点过时了。
编辑:通过指定我可以选择选择列表框中的文本放在工作表上的位置。理想情况下,它将是右上角和右上角。但我需要调整位置使其完美贴合! 谢谢您的帮助, 甲
答案 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