|
* 楼主,我让你提供空白真实提单,仍然没有提供,只好我把已经填好的提单删除再填写。
* 请关闭所有 Word 文档后,单独打开“效果模板.doc”和“数据源.docx”两个文档,按 F8 键执行宏。
* 如果真实的文件名和上述文档不一样,请自行修改,但要注意扩展名;只要文件名正确,本宏就正确。
- Sub AutoOpen()
- KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyF8), KeyCategory:=wdKeyCategoryMacro, Command:="提单制作"
- End Sub
- Sub 提单制作()
- Dim a As Document, b As Document, arr, s&, i&, t$, r$, q$
-
- Set a = Documents("效果模板.doc") '短文件名,请自行修改!
- Set b = Documents("数据源.docx") '短文件名,请自行修改!
- '''
- b.Activate
-
- arr = Split(Left(b.Paragraphs(4).Range, Len(b.Paragraphs(4).Range) - 1), "/")
- s = UBound(arr)
-
- b.Paragraphs(5).Range.Select
- With Selection
- Do While Not .Next(4, 1) = vbCr
- .MoveEnd 4, 1
- Loop
- .MoveEnd 1, -1
- t = .Text
- End With
-
- r = Left(b.Paragraphs(2).Range, Len(b.Paragraphs(2).Range) - 1)
- q = r
- '''
- a.Activate
-
- ActiveDocument.Range(Start:=a.Tables(1).Range.Cells(2).Range.Paragraphs(5).Range.Characters(InStr(a.Tables(1).Range.Cells(2).Range.Paragraphs(5).Range, ":") + 1).End, End:=a.Tables(1).Range.Cells(2).Range.Paragraphs(5).Range.Characters.Last.End - 1).Text = Left(b.Paragraphs(3).Range.Text, Len(b.Paragraphs(3).Range.Text) - 1)
- ActiveDocument.Range(Start:=a.Tables(1).Range.Cells(2).Range.Paragraphs(6).Range.Characters(InStr(a.Tables(1).Range.Cells(2).Range.Paragraphs(6).Range, ":") + 1).End, End:=a.Tables(1).Range.Cells(2).Range.Paragraphs(6).Range.Characters.Last.End - 1).Text = Left(b.Paragraphs(3).Range.Text, Len(b.Paragraphs(3).Range.Text) - 1)
-
- a.Tables(1).Range.Cells(19).Range.Paragraphs(2).Range.Text = arr(0) & vbCr
- a.Tables(1).Range.Cells(21).Range.Paragraphs(2).Range.Text = arr(2) & vbCr
- a.Tables(1).Range.Cells(22).Range.Paragraphs(2).Range.Text = arr(3) & vbCr
-
- ActiveDocument.Range(Start:=a.Tables(1).Range.Cells(22).Range.Paragraphs(4).Range.Start, End:=a.Tables(1).Range.Cells(22).Range.Paragraphs.Last.Range.End - 1).Delete
- a.Tables(1).Range.Cells(22).Range.Paragraphs(3).Range.Characters.Last.InsertBefore Text:=vbCr & t
-
- a.Tables(1).Range.Cells(36).Range.Text = r
- a.Tables(1).Range.Cells(39).Range.Text = r
- a.Tables(1).Range.Cells(45).Range.Text = r
- '''
- If Left(r, 1) = "0" Then
- r = "0" & Mid(r, 2, 1) + 1 & "/" & Right(r, 3)
- Else
- r = Left(r, 2) + 1 & "/" & Right(r, 3)
- End If
- '''
- If Left(r, 2) = "32" Then MsgBox "错误!本月共32天!请确认数据源是否正确!", 0 + 16: End
- a.Tables(1).Range.Cells(48).Range.Text = r
- a.Tables(1).Range.Cells(54).Range.Text = r
- a.Tables(1).Range.Cells(57).Range.Text = r
- '''
- q = Replace(q, "/", "-") & "-" & Format(Date, "yyyy")
- a.Tables(1).Range.Cells(63).Range.Paragraphs(3).Range.Text = q
- MsgBox "提单制作完毕!请另存为新文档保存!", 0 + 48, "提单制作"
- End Sub
复制代码 |
评分
-
1
查看全部评分
-
|