vb.net 操作word 替换字符后的格式问题

魔力小西瓜 2014-07-11 11:42:29
Dim myDoc As Microsoft.Office.Interop.Word.Document
Dim wrdApp As New Microsoft.Office.Interop.Word.Application
myDoc = wrdApp.Documents.Open(FileName:="C:/Doc1.doc")
Dim myRange As Microsoft.Office.Interop.Word.Range


myRange = myDoc.Range()
myDoc.Range.Text = myRange.Text.Replace("BBBB", "222")

以上代码的功能是读取"C:/Doc1.doc"这个文档,然后替换里面的"BBBB"为"222"
运行后成功实现.但是有个问题,就是替换以后文档的字体大小和颜色等都被统一改成了第一个字符的大小和 颜色
求 解决方案.
...全文
484 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
掌门人的一天 2015-07-30
  • 打赏
  • 举报
回复
楼主,今天搜到你的这段代码了,想请教一下这段代码里面你说的替换n,也就是替换多个位置,代码应该怎么修改呀,麻烦帮忙一下,谢谢了。
魔力小西瓜 2014-07-14
  • 打赏
  • 举报
回复
根据2楼提供的资料,又查了其他资料,经过反复测试 终于解决问题了! 我修改后的代码贡献如下,供后来人参考: Sub word_Replace(ByVal FileName As String, ByVal SearchString As String, ByVal ReplaceString As String) Dim wordApp As Application Dim wordDoc As Document Dim wordArange As Range Dim ReplaceSign As Boolean If Dir(FileName) = "" Then '替换文件不存在 MsgBox("未找到" & FileName & "文件") '提示替换文件不存在信息 ' WordReplace = -2 '返回替换文件不存在的值 Exit Sub '退出函数 End If wordApp = CreateObject("Word.Application") '建立WORD实例 wordDoc = wordApp.Documents.Open(FileName) '打开文件并赋予文件实例 ReplaceSign = True '初始化是否替换成功标志,当替换结束后,会返回False wordApp.Visible = False '关闭word文档的显示 While True wordDoc.Select() wordArange = wordDoc.Range ReplaceSign = wordArange.Find.Execute(SearchString, , , , , , , , , ReplaceString, True) '查找并替换 If ReplaceSign = False Then '当全部替换完成以后 才退出,如果要制作替换n次的话,修改此次代码即可 Exit While End If End While wordApp.Visible = True '弹出word框 wordDoc = Nothing '清除文件实例 wordApp = Nothing '清除WORD实例 End Sub
魔力小西瓜 2014-07-14
  • 打赏
  • 举报
回复
引用 1 楼 wangnaisheng 的回复:
http://www.d9soft.com/article/2006/2-16/Article4598_1.htm 试试
没有用啊
本DataGridView打印控件和.NET打印控件5.7版2014年11月2日修改完成,完全免费,在.NET2.0及以上环境下都可以使用(VB打印、C#打印都是可以的),有帮助文档与使用实例。 与上一版相比,控件5.7版的主要更改如下: 1、重写DataGridView导出Excel的代码,5.7版控件使用开源的NPOI库导出Excel,完全不依赖Office,不会再有因为没装Office或Office安装有问题而导出失败的情况,而且导出速度非常快,支持大于65536条记录的导出(自动分成多个工作表),效果非常好。导出Excel的接口未变,因此您不需要修改任何代码,只需替换控件即可; 2、SimpleReport打印组件添加了导出Excel功能,该功能在打印预览界面的按钮中; 3、多表头组件MulHeaderDataGridView添加了从Excel中导入数据(ImportFromExcel函数)及复制(Copy函数)与粘贴(Paste函数)的功能。其中导入Excel功能使用开源的NPOI组件实现,不依赖Office。 4、其他一些完善,比如解决了导出Excel时强制换行不自动显示,而是要双击才显示问题;导出Excel时,图片能按单元格大小导出。 本控件特色: 1、强大的DataGridView打印功能,不仅可以以多种形式(普通打印、分栏打印、跨页打印、工资条打印)打印DGV表格,基本上能完全按DGV控件本身设置的格式如字体、字号、背景颜色、前景颜色、单元格对齐方式等打印出来,文字图像都可以打印,而且是完全根据表格当前的显示顺序进行打印的,基本上做到了所见即所得的打印。 2、报表设计功能。报表模板设计组件EasyReport可以设计普通报表、分组报表、套打模板等,以DataGridView为数据源。控件的位置以毫米为计量单位,定位准确,很适合套打单据设计。 3、强大的图表打印功能。5.2版控件新增了一个Chartlet的组件,使用非常方便,可以生成柱形图、饼图、折线图等多种图形,而且可以设置2D或3D效果,既可以在打印控件中打印出来,也可以在Graphics对象中显示。 4、分组汇总打印DataGridVeiw功能,每组还可以自动换新页打印,还可以自动增加行号。 5、强大的文本打印输出功能,控件提供多个文本打印重载函数,打印文本时,如果需要,控件会自动换行和换页打印输出。还增加了以指定行间距及字符间距打印文本的功能,可以用固定行距,也可以用单倍或多倍行距打印文本。 6、强大的绘图功能,基本上.NET的GDI+的绘图函数(如直线、矩形、路径、多边形、曲线等)都有,只有个别函数的名称有点区别。 7、支持同一文档多种版面格式打印(类似于Word中的节的功能):对同一份文档,不同的页面可以设置不同的格式(纸张大小、纸张方向、页边距),只需要在新增一页时在NewPage方法中指定要使用的页面格式即可,使用非常简单。 8、报表文件保存功能。本控件允许将当前打印预览的内容保存为报表文件,以后使用本控件重新打开该报表文件即可重现原来保存报表时的打印内容。 9、Excel导出功能,可以将DataGridView导出为Excel文件,5.7版控件使用开源的NPOI导出Excel,速度非常快,效果非常好,5.4版还增加了合并单元格的导出功能。 10、打印DataGridView时的打印方案保存与读取功能。可以将当前打印参数保存为打印方案文件,或者从保存的打印方案文件中读取打印参数。 11、水印打印功能。根据需要,可以在页面中打印或不打印以半透明空心文字打印水印。 12、强大的容器控件打印功能(DrawPanel函数)。借助该函数,您只需要在您的容器控件中设计好要打印的内容及打印内容的相对位置,控件轻松帮你打印出来(如果超过一页,控件会自动换页续打)。 13、特殊文字效果打印功能。控件具有打印浮雕文字、阴影文字、空心文字、块文字的功能。 14、页眉页脚中既可打印文字,也可打印图像,或者即打印图像又打印输出文字。 15、图像与图标打印输出功能。 16、多表头(跨行跨列的复杂表头)打印功能,多表头组件支持多表头显示与打印、单元格内容的合并显示、打印与导出。 17、自定义纸张支持功能。 18、纸张背景图片设置打印功能。 19、.NET4.0支持功能(是单独的一个文件)。 20、直接打印窗口中的TreeView控件功能。 21、打印窗口中的ListView功能。 22、RichTextBox控件的RTF文本打印功能。 23、斜线表头打印功能(5.4版新增)。 24、二维码打印功能(5.5版本增加)。 25、5.6版新增的SimpleReport组件允许您在一个方案文件中管理多个打印方案,在打印预览时能自由在各个打印方案之间切换。 26、5.7版控件增加了使用开源的NPOI从Excel文件中导入数据到DataGridView的功能,以及DataGridView的复制与粘贴功能。 我将持续改进该控件,并将不断推出控件的新版本,要查看或下载控件的升级版本,请登陆网站:http://myyouping.download.csdn.net/ 。具体使用方法请参见帮助文件与实例文件,如有疑问或好的建议,请与我联系: 邮箱:myyouping@139.com Q Q:479781502
包含使用和开发接口文档,及Delphi、VB、VC++、C#.net、VB.net的demo。 ACReport简介 Anycell Report(简称ACReport)是一款中国式报表组件,是国内最早的基于表格,支持图文混排、公式和脚本的中国式报表工具之一。就如Anycell Report的名称那样,灵活强大的表格功能一直是AC Report区别于其它软件或控件最显著的特征之一,AC Report 表格取消了传统表格概念中“列”的概念,每一行上的单元格数量可以不等,且可以自由活动,不用上下对齐,在制作复杂的中国式报表时更加方便和随心所欲,省时省力,避免很多不必要的合并拆分操作。单元格支持多种丰富的形态,例如格式化文本、图片、图表、条码、OLE容器等。 AC Report的一些基本特点: 1.独具特色的表格,风格与Word表格相似,但可以做出比Word或Excel更灵活的表格来。 2. 功能全面、专业的中国式报表设计器,中国用户更易于学习和接受。 3.支持多种单元格样式,可以打印图像、图表(直方图、折线图等)、Rich文本、 条形码、中式财务帐薄、支持在报表中嵌入Word、Excel文档等。 4. 强大的计算和合计功能。内置表达式解析系统和函数库。 5. 可扩充性,可以在应用程序中给报表引擎扩充函数库、报表样式和单元格样式。 6.支持多种报表样式,如清单式、分组、交叉表、以及子报表等。 7. 支持多栏式报表。 8. 和应用程序完美结合,支持windows下所有的开发工具和程序语言(例如Delphi、C++、VB、PB、.NET、易语言),最终用户在设计器里可直接选择打印字段,生成表达式,报表设计器用户容易学习理解。 9. 支持脚本和窗体编程,报表设计人员可以编写脚本、在报表设计器里为报表添加窗体,为最终用户提供更丰富的交互功能。 10. 既可以使用应用程序中的数据集,也支持在报表中直接连接各种数据库,通过SQL直接获得报表需要的数据。 11.无失真导出为Excel、Word、Html格式的文档 Ver 2.25 主要新增或修改的功能 一、 增加报表行对象隐藏功能(支持在脚中设置,函数名:SetLineVisible(b: boolean))【设计器】 二、 增加单元格下拉列表框设置功能【设计器】 三、 增加宏替换功能(宏变量)的支持【设计器】 四、 增加IAcFuncionLib接口支持,以一种新的方式扩充函数库【SDK】 五、 增加LoadFromStream和SaveToStream方法及IAcNetStream接口支持【SDK】 六、 修改了单元格批量复制粘帖功能,当粘帖位置行数不够时,粘帖时自动增加行。【设计器】 七、 修改了单元格拖动时有时会出现字符显示错位的问题【设计器】 八、 屏蔽了设计器中打开模板时如果数据库控件连接字符串无效时报错的信息【脚本】 九、 设计器增加了行号显示功能 十、 增加了SetAppConnectionString方法,数据库连接控件增加了AlwaysUseAppConnString等相关属性,在报表中直接访问数据库更加方便。 十一、清单报表明细支持横向分栏 最新版v2.25,请从这里下载: http://download.csdn.net/source/2931469 (若发现bug或有什么问题请加qq:1655373859)

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧