Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: yjwdjfqb

[已解决]VBA,根据EXCEL花名册,生成word文档的年度考核表

[复制链接]
发表于 2014-1-6 14:15 | 显示全部楼层
hwc2ycy 发表于 2014-1-6 13:49
模板里的书签都是我自己加的,你原来的模板里没有,肯定要报错。

老师,模板里的书签是怎么加的啊?学习一下!请指教!
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2014-1-6 14:18 | 显示全部楼层
yyyydddd8888 发表于 2014-1-6 14:15
老师,模板里的书签是怎么加的啊?学习一下!请指教!

插入书签,输入名字,添加就成了。
好好学学邮件合并吧。
这个可比写代码容易多了。



评分

参与人数 1 +9 收起 理由
yjwdjfqb + 9 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-1-6 14:21 | 显示全部楼层
hwc2ycy 发表于 2014-1-6 14:10
偶不是说了嘛,是单元格的对齐方式造成的,你改成水平垂直全居中,就OK了。不是还截了图怎么改嘛。

偶错了,知道了!
回复

使用道具 举报

发表于 2014-1-6 14:21 | 显示全部楼层
hwc2ycy 发表于 2014-1-6 14:18
插入书签,输入名字,添加就成了。
好好学学邮件合并吧。
这个可比写代码容易多了。

对写代码很有兴趣啊!
再请问一下:插入书签是在哪里插入啊?找不到按钮啊?
回复

使用道具 举报

发表于 2014-1-6 14:23 | 显示全部楼层
hwc2ycy 发表于 2014-1-6 14:18
插入书签,输入名字,添加就成了。
好好学学邮件合并吧。
这个可比写代码容易多了。

找到了!谢谢!
回复

使用道具 举报

 楼主| 发表于 2014-1-6 14:24 | 显示全部楼层
开心妙妙 发表于 2014-1-6 13:44
用了一个比较简单的方法,不用VBA代码,就用WORD的功能,邮件合并,点击几个鼠标,即可完成

谢谢老师教程,这个也很好!
回复

使用道具 举报

发表于 2014-1-6 14:39 | 显示全部楼层
hwc2ycy 发表于 2014-1-6 14:18
插入书签,输入名字,添加就成了。
好好学学邮件合并吧。
这个可比写代码容易多了。

老师,你代码中的窗体有没有作用呢?我注释掉窗体的代码也能够生成word文件呢?
回复

使用道具 举报

发表于 2014-1-6 14:49 | 显示全部楼层
yyyydddd8888 发表于 2014-1-6 14:39
老师,你代码中的窗体有没有作用呢?我注释掉窗体的代码也能够生成word文件呢?

窗体是为了做等待界面用的,我的电脑慢才有用场,另外一台电脑用03测的时候,速度快了不少,就没用窗体了。


回复

使用道具 举报

发表于 2014-1-6 15:07 | 显示全部楼层
hwc2ycy 发表于 2014-1-6 14:49
窗体是为了做等待界面用的,我的电脑慢才有用场,另外一台电脑用03测的时候,速度快了不少,就没用窗体了 ...

哦,谢谢!
回复

使用道具 举报

 楼主| 发表于 2014-3-22 10:27 | 显示全部楼层
hwc2ycy 发表于 2014-1-6 13:01
任务栏显示正在处理的人的名字。

03下测试通过了。


Sub ToWord()
    Dim arr, i As Integer
    arr = Range("a1").CurrentRegion.Value
    Dim strPath$
    strPath = ThisWorkbook.Path & Application.PathSeparator
    Dim objWord As Object
    Set objWord = CreateObject("word.application")
    With objWord
        For i = 2 To UBound(arr)
            With .documents.Add(Template:=strPath & "模板.doc")
                Application.StatusBar = "正在处理 " & arr(i, 2)
                .bookmarks("姓名").Range.Text = arr(i, 2)
                .bookmarks("性别").Range.Text = arr(i, 8)
                .bookmarks("出生年月").Range.Text = arr(i, 9)
                .bookmarks("参加工作时间").Range.Text = arr(i, 11)
                .bookmarks("政治面貌").Range.Text = arr(i, 6)
                .bookmarks("文化程度").Range.Text = arr(i, 18)
                .bookmarks("技术等级").Range.Text = arr(i, 15)
                .bookmarks("起聘时间").Range.Text = arr(i, 16)
                .bookmarks("本人述职").Range.Text = arr(i, 19)
                .bookmarks("工作单位").Range.Text = arr(i, 3) & arr(i, 12)
                .bookmarks("分管工作").Range.Text = arr(i, 20)
                .bookmarks("年度").Range.Text = arr(i, 21)
                .SaveAs strPath & arr(i, 2) & ".doc", FileFormat:=0
                .Close True
            End With
        Next
        .Quit
    End With
    Application.StatusBar = ""
    MsgBox "整理完成"
End Sub


    arr = Range("a1").CurrentRegion.Value
这句给我解释下好吗,什么作用,a1固定的吗,
我换成 B1 C1。。。。其它的也可以
麻烦老师了,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-23 15:37 , Processed in 0.344930 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表