word套打遇到的一个问题:窗体域字符串太长。

    word套打的方法一般是:在需要套打的地方都设置上文本域,调好格式,也可以设置为不可见,然后在使用时动态的使用vba(word 宏环境)或是js(web dsoframer环境)将文本域替换成文字,然后调用word的只打印窗体域。

 

    右键窗体域属性,常规文本,我考,长度默认:无限制。我喜欢。使用那是相当方便,根据名称拿到FormField,然后直接使用field.Result = data;就可以换成我们要的文字。

实际一用,我考。被微软黑了一把,超过256就报错:字符串太长。

 

    baidu啊,google啊,找到一个据说是微软的官方vba解决方案,30句代码左右,按256的长度,截取字符串,使用selection对象,循环插入到末尾。手头这个是在js中做的,这么转可能又问题,个别对象可能调用不到。忽然想到做word文档生成时常用的word一般的处理方法:操作Range。看看成不。

                    field.Range.InsertAfter(data);
                    item.Delete();

效果和field.Result = data;一模一样。

哇咔咔,greate。伟大的Range取得了胜利。

 

你可能感兴趣的:(编程,Microsoft,Google,Office,VBA)