Excel明细生成多个word采购合同,Excel魔方完成

场景:

我们的采购信息存储在excel中,需要以合同编号为基准,批量生成多个word采购合同。

采购合同样本如下:

实现方法和步骤:

 通常这种可以使用邮件合并来完成,但是涉及多条信息拆分到word中的时候,邮件合并就不好使了。所以这里,我们用Excel魔方插件来实现。

我们先对word采购合同做一些整理:

模板中,需要替换的字段,这么标识:
Excel中列名是姓名,到Word里面就要改成【姓名】,以此类推。
多条明细内容,需要单独加明细二字:
Excel中列名是规格型号,到Word里面就要改成【规格型号】明细,以此类推。

接着,打开插件按钮

配置好模板路径以及excel明细数据的区域

执行完之后结果如下:

其中用到了excel vba和wordvba的知识。

Sub 写入Word数据()
Application.ScreenUpdating = False
Set doc = CreateObject("word.application")
doc.Visible = True
kehu_row = ActiveSheet.Cells(Rows.Count, 3).End(3).Row '找到C列已使用的最大行号,客户名称所在列
For i = 2 To kehu_row '开始对C列进行循环
If Cells(i, 3) <> "" And Cells(i + 1, 3) = "" Then '当是最后一行的情况的时候
r = Cells(i, 3).End(xlDown).Row - 1 '获取第三列此时的最大行号-1
If r = Rows.Count - 1 And r <> Cells(i, 4).End(xlDown).Row - 1 Then '该客户有多个商品
r = Cells(i, 4).End(xlDown).Row '第四列已使用的最大行号赋值给r
ElseIf r = Rows.Count - 1 And r = Cells(i, 4).End(xlDown).Row - 1 Then '该客户只有一个商品
r = i
End If
Set wd = doc.Documents.Open(ThisWorkbook.Path & "\合同模板.docx")
With doc.Documents(1).Tables(1)
.Rows(2).Select
If r <> i Then doc.Selection.insertrowsbelow r - i '如果r<>i,也就是说,该客户不止一件商品,word表格插入行
For rr = 2 To r - i + 2 '开始往word表格中写入数据
.cell(rr, 1).Range = IIf(Cells(i + rr - 2, 5).Value = "", "", Cells(i + rr - 2, 5).Value)
.cell(rr, 2).Range = IIf(Cells(i + rr - 2, 6).Value = "", "", Cells(i + rr - 2, 6).Value)
.cell(rr, 3).Range = IIf(Cells(i + rr - 2, 7).Value = "", "", Cells(i + rr - 2, 7).Value)
.cell(rr, 4).Range = IIf(Cells(i + rr - 2, 8).Value = "", "", Cells(i + rr - 2, 8).Value)
.cell(rr, 5).Range = IIf(Cells(i + rr - 2, 9).Value = "", "", Cells(i + rr - 2, 9).Value)
.cell(rr, 6).Range = IIf(Cells(i + rr - 2, 10).Value = "", "", Cells(i + rr - 2, 10).Value)
.cell(rr, 7).Range = IIf(Cells(i + rr - 2, 11).Value = "", "", Cells(i + rr - 2, 11).Value)
.cell(rr, 8).Range = IIf(Cells(i + rr - 2, 12).Value = "", "", Cells(i + rr - 2, 12).Value & "%")
Next
.cell(rr, 2).Range = WorksheetFunction.Sum(Range(Cells(i, 8), Cells(r, 8)))
.cell(rr, 5).Range = WorksheetFunction.Sum(Range(Cells(i, 11), Cells(r, 11)))
End With
Set myrange = wd.Content
With doc.Selection '查找替换数据
.HomeKey Unit:=6
.Find.Execute ("日期数据1")
.Text = Cells(i, 1).Value
.HomeKey Unit:=6
.Find.Execute ("日期数据2")
.Text = Cells(i, 1).Value
.HomeKey Unit:=6
.Find.Execute ("需方数据")
.Text = Cells(i, 3).Value
.HomeKey Unit:=6
.Find.Execute ("总金额数据")
.Text = Cells(i, 13).Value
.HomeKey Unit:=6
.Find.Execute ("甲方数据1")
.Text = Cells(i, 3).Value
.HomeKey Unit:=6
.Find.Execute ("甲方数据2")
.Text = Cells(i, 3).Value
End With
doc.ActiveWindow.ActivePane.View.SeekView = 9 '查找替换页眉数据
doc.Selection.HomeKey Unit:=6
If doc.Selection.Find.Execute("合同编号数据") Then
doc.Selection.Text = Cells(i, 2).Value
End If
doc.Selection.Find.Execute Replace:=2
doc.Selection.HomeKey Unit:=6
fpath = ThisWorkbook.Path & "" & Cells(i, 2).Value & "静载合同.docx"
wd.SaveAs fpath
wd.Close False
ElseIf Cells(i, 3) <> "" And Cells(i + 1, 3) <> "" Then '当是中间行的情况的时候
Set wd = doc.Documents.Open(ThisWorkbook.Path & "\合同模板.docx")
With doc.Documents(1).Tables(1)
.cell(2, 1).Range = Cells(i, 5).Value
End With
Set myrange = wd.Content
With doc.Selection
.HomeKey Unit:=6
.Find.Execute ("日期数据1")
.Text = Cells(i, 1).Value
.HomeKey Unit:=6
.Find.Execute ("日期数据2")
.Text = Cells(i, 1).Value
.HomeKey Unit:=6
.Find.Execute ("需方数据")
.Text = Cells(i, 3).Value
.HomeKey Unit:=6
.Find.Execute ("总金额数据")
.Text = Cells(i, 13).Value
.HomeKey Unit:=6
.Find.Execute ("甲方数据1")
.Text = Cells(i, 3).Value
.HomeKey Unit:=6
.Find.Execute ("甲方数据2")
.Text = Cells(i, 3).Value
End With
doc.ActiveWindow.ActivePane.View.SeekView = 9
doc.Selection.HomeKey Unit:=6
If doc.Selection.Find.Execute("合同编号数据") Then
doc.Selection.Text = Cells(i, 2).Value
End If
doc.Selection.Find.Execute Replace:=2
doc.Selection.HomeKey Unit:=6
fpath = ThisWorkbook.Path & "" & Cells(i, 2).Value & "静载合同.docx"
wd.SaveAs fpath
wd.Close False
Else
End If
Next
doc.Quit
Application.ScreenUpdating = True
MsgBox "完成!"
End Sub

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 淘宝类目明细表是指一个包含淘宝商品类目信息的Excel表格。该表格通常由淘宝平台提供,将不同类别的商品按照一定的规则归类。 淘宝类目明细表包含了商品类目的各种信息,包括类目编号、类目名称、层级关系、父类目编号等。这些信息有助于卖家更好地了解和管理自己所经营的商品。 通过淘宝类目明细表,卖家可以快速查找到自己所经营商品的类目编号和父类目编号。这对于商品的发布、搜索、推广和销售都非常重要。卖家可以根据类目编号在淘宝平台上发布商品,确保商品被正确地分类展示给用户。同时,父类目编号可以帮助卖家更好地了解商品所属的具体类别,从而有针对性地进行促销和广告投放。 淘宝类目明细表还为卖家提供了类目的层级关系,有助于他们在经营过程中更好地了解不同类目之间的关系。对于多个类目相关的商品,卖家可以通过查看类目之间的层级关系,更好地选择适合的发布类目,提高商品的曝光度和销售量。 总之,淘宝类目明细表是一个非常重要的工具,对于淘宝卖家来说至关重要。通过淘宝类目明细表,卖家可以准确地发布商品、了解类目关系、提高销售效果,为自己的电商业务带来更多的机会和成功。 ### 回答2: 淘宝类目明细excel 是一种基于Excel软件制作的用于整理、管理和展示淘宝类目信息的表格。它通常用于商家的库存管理、产品发布和销售数据统计等工作中。 淘宝类目明细excel 包含了产品的各种属性信息,如类目编号、类目名称、父子类目关系、属性名称、属性值等。商家可以根据自己销售的产品进行分类整理,并填写产品的各种属性信息,方便在淘宝平台上发布产品。 通过淘宝类目明细excel,商家可以对产品进行批量管理。比如,可以通过筛选功能,只展示出某个类目下的产品;可以对产品进行批量修改,比如修改价格、修改属性值等;可以进行导入导出操作,方便进行大量产品信息的更新和备份。 此外,淘宝类目明细excel 还可以用于产品销售数据的统计和分析。商家可以在表格中添加销量、库存等数据,并利用Excel的计算公式和图表功能进行数据分析。比如可以通过销售数据分析热销产品、低销产品、库存紧张等情况,从而调整产品策略。 淘宝类目明细excel 的使用需要一定的Excel操作技巧。商家需要了解Excel的基本功能和操作方法,比如如何插入行列、如何使用筛选功能、如何运用公式和图表功能等。同时,淘宝类目明细excel 中的类目和属性信息也需要与淘宝平台的最新数据保持一致,以确保正确的产品分类和属性填写。 总之,淘宝类目明细excel 是一种帮助商家管理淘宝平台产品信息的工具,在产品整理、发布、管理和销售数据分析等方面起到了重要的作用。商家可以根据自己的需求和实际情况合理利用该表格,提高产品管理和销售效率。 ### 回答3: 淘宝类目明细excel 是指一个用于记录淘宝商品类别以及相关信息的电子表格文件。这个表格通常以 excel 格式存储,可以使用 Excel 软件进行编辑和管理。 淘宝类目明细excel 主要用于对淘宝商品进行分类和归档。在淘宝上销售的商品种类繁多,为了方便买家搜索和选择商品,淘宝对商品进行了分类,而淘宝类目明细excel 就是用于记录这些分类信息的工具。 在淘宝类目明细excel 中,每一行代表一个具体的商品类别,每一列代表这个类别的属性信息。常见的属性包括类别名称、类别ID、父类别ID、商品数量、创建时间等。通过在每个单元格中填写相应的信息,可以将淘宝商品按照不同的类别进行分类,方便买家搜索和筛选。 淘宝类目明细excel 还可以用于商品的上架和下架管理。通过记录商品的状态信息,可以快速判断商品的上架或下架情况,并且可以根据需要对商品的状态进行修改。 总之,淘宝类目明细excel 是一个用于记录淘宝商品分类信息的工具。它通过电子表格的形式,方便管理者对商品进行分类、编目和筛选,提高买家的购物体验。淘宝类目明细excel 的使用可以提高商品管理的效率,并且可以根据需要进行扩展和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值