如何导出excel中部分数据(比如一行中的若干单元)到Word中的指定位置(保证Word格式没有太大变化)?

假定这种情况,我向一个单位的3000人发通知单(我可以使用Word中的邮件合并轻松搞定),现在有5人未收到通知单,然后有5人新增进了我的excel原数据表里。我需要单独打印这10人的通知单,请问有何办法将这10人的数据单独导出,导入进Word里的通知模版中指定位置。说明:使用Word的原因是因为通知单格式较固定,我需要特地排版。如能保证格式亦可放弃Word。数据在excel里以行的形式储存,我需要调用部分,所有人可通过编号区分或查找出来。

简而言之:在excel中新录入一行数据(或者查找到某一行数据)后,如何导出这行数据中我需要的部分到Word通知单里对应的位置然后打印。
我的思路:在excel里的新一页,在指定位置输入员工编号,使用vlookup函数整理出通知单里需要的数据。1.使用邮件合并时数据源只选择我新建的那一页。存在问题:同步性很差,我必须保存excel并关闭后,再打开word才能使对应的内容发生改变,而且打开过程中会有提示。如果有比如10个人需要单独处理,我需要反复打开关闭。2.在Word中使用链接引用excel中整理出的数据。存在问题:对于需要填的内容较多的通知单工作量很大,而且最重要的一定是引用过来的数据我不能很好的控制格式,他会自动换行或者有其他情况。总之会破坏原通知单格式。

在下能力有限,特来请教这里的高人,希望有人可以指点迷津。我考虑过使用vb可是我做不好通知单的模板,而且vb也不是很熟悉。另外考虑过使用宏进行保存excel打开Word的做法,但也不是很成功,宏也不是太熟悉。惭愧。

通知单为同时通知多部门的,故需要重复使用很多数据。可参考附图

用vba甚至不用管word的range就轻松搞定
将excel和word的模板放在同一个目录,以后按姓名生成不同的word文档
在excel那个工作表空的地方建个按钮控件,其脚本如下

Sub 按钮1_单击()
s_name = ActiveWorkbook.Name
s_name1 = ActiveSheet.Name
s_path = ThisWorkbook.Path
ls_01 = "word模板名"
Set objWordApp = CreateObject("Word.Application")
objWordApp.Visible = True

With Workbooks(s_name).Sheets(s_name1)
ln_02 = .Cells(1, 1).CurrentRegion.Rows.Count
for i=3 to ln_02
Set objDocument = objWordApp.Documents.Open(s_path + "\" + ls_01 + ".doc")
ls_02=.Cells( i,2).Value

objWordApp.Select
objWordApp.selection.MoveUp unit:=wdParagraph, count:=1, extend:=wdMove
rem 以上移动光标到开头

rem 以下填写每张通知的每一项,这里仅以填写编码为例
objWordApp.Selection.MoveDown Unit:=wdLine, Count:=2
rem 以上移动光标到第2行
objWordApp.Selection.MoveRight Unit:=wdCharacter, Count:=13
rem 以上移动光标到第13列
ln_03=lenb(trim(ls_02))
objWordApp.Selection.TypeText Text:=ls_02
rem 以上填写编码
objWordApp.Selection.Delete Unit:=wdCharacter, Count:=ln_03
rem 以上删除编码相同长度的空格

rem ''''''''''把各个要填的对应写好,缺点是行列要自己查
rem 以上填写每张通知的每一项,这里仅以填写编码为例

ls_02=.Cells( i,3).Value
objDocument.SaveAs Filename:=s_path + "\" + ls_02 + ".doc"
rem 以上以姓名保存word
objDocument.close
rem 以上关闭word
next
End With

End Sub

晕,所谓的word模板不是让你做dot,就是做一个设计好的空的doc文档。vba都写好了。按着查一下有几个地方要添加就好了,上面只写了填编码的。其实就是移动光标到哪行哪列,然后填写项目,然后删除对应多的空格。每一项都4步。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-10
你既可以用邮件合并轻松搞定那3000人,那就将数据源电子表改为那10个人或追加到后面就可以搞定了
第2个回答  2010-11-10
在Word里的邮件合并可以直接勾选需要合并的行,甚至根据进行筛选。本回答被网友采纳
第3个回答  2010-11-10
Word邮件合并里面不是可以选择要输出的记录的范围吗?
合并到新文档时,选择新增5人数据所对应的记录编号即可。
第4个回答  2010-11-10
不能把整合的数据建立在新的excel中吗,新的excel粘贴一下原格式,然后重新设置一下邮件合并,格式不同可以格式刷一下啊

也许没有理解您的意思 ,献丑了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网