我看到了一些关于从Excel创建Word表格的问题的答案,但它们并不完全符合我的需求。我有一个Excel表格,其中包含设备的详细信息(公司编号、序列号、制造商、描述和型号号码)。该文件目前有17114行设备数据。我有一个具有四列(数量、公司编号、零件编号、描述)的Word文档。
现在,在Excel上我有一个按钮来打开Word文档,另一个按钮则会弹出用户窗体。用户窗体有一个组合框和一个文本框。组合框选择要在Excel中搜索哪个列。文本框是人们正在寻找的内容。下面是此代码的代码:
我知道我可以使用类似以下的方法,但这并没有指定数据放在哪里。
现在,在Excel上我有一个按钮来打开Word文档,另一个按钮则会弹出用户窗体。用户窗体有一个组合框和一个文本框。组合框选择要在Excel中搜索哪个列。文本框是人们正在寻找的内容。下面是此代码的代码:
Dim myLastRow As Long
Dim myResult As Long
Dim myTableRange As Range
myLastRow = Cells(Rows.Count, 1).End(xlUp).Row
If ComboBox1.Value = "Serial" Then
Set myTableRange = Range("B1:B" & myLastRow)
myResult = Application.Match(TextBox1.Value, myTableRange, 0) 'Returns row number only
Range("B" & myVLookupResult).Activate
ElseIf ComboBox1.Value = "MII" Then
Set myTableRange = Range("A1:A" & myLastRow)
myResult = Application.Match(TextBox1.Value, myTableRange, 0) 'Returns row number only
Range("A" & myResult).Activate
Else
MsgBox ("No Range Selected")
End If
“MII”指的是公司编号。该代码位于命令按钮上。我想从这里开始,宏可以将数据从myResult复制到Word中。要复制的单元格为:
Cells(myResult, 1)
将内容移动到Word文档的第二列;
Cells (myResult, 2)
将文本移到Word中的第三列;以及
Cells(myResult, 3) & ", " & Cells(myResult, 4) & ", Model #" & Cells(myResult, 5)
寻找word中第四列的位置。我还希望word检查第一个空白行(在标题之后),并将它们插入到那里。如果页脚之前没有空白行(也是表格的一部分)就添加一行。
默认情况下,我可以将数据放入16行中。其中13行为标题(标题是表格的一部分)。总共19行会创建第二页,但第二页上没有任何单元格用于数据(只有标题和页脚)。只有当28行被制作出来时,第二页才开始出现用于数据的单元格。
我的问题是如何在word中引用表格中的特定单元格?我能否像在excel中一样使用相同的代码查找标题后的第一个空白单元格吗?对于添加到表格中的行以及计算可用行数以确保我输入正确的页码,代码是否相同?
目前,我在宏中仅调用了文档。
Dim objWord, objDoc As Object
Set objWord = GetObject(, "Word.Application")
objWord.Visible = True
我知道我可以使用类似以下的方法,但这并没有指定数据放在哪里。
Sheets(1).Range(FirstCell, LastCell).Copy
objWord.Selection.Paste
objWord.Selection.TypeParagraph