-- 作者:cnsjroom
-- 发布时间:2022/3/4 15:11:00
-- Excel word模板能不能实现类似效果呢
此主题相关图片如下:a4063a5b-1ebc-4ce2-88b6-459add6e0e32.png
文件内容如图
有没有办法实现在小框内打勾或打点 表示该部分被选
在模板阶段要如何进行设计呢?
网上的这个vba实现打勾输入框 怎么转换成狐表里面的代码执行呢? 通过输入一个大写的R,然后字体选择“Wingdings 2”即可显示为打√的方框,我们为何不能在vba中先用大写的R代替该字符,然后输出在word中,再批量设置字体为“Wingdings 2”呢?
为此,我们将整个算法写成如下的形式:
将打√的方框表示为一个复杂的字符串(这个字符串不可能与整个word文档中的其它字符串重复,不能仅仅表示为大写字母R,因为有可能其它word字符串中也含有大写字母R),然后用word的查找替换,批量查找该复杂的字符串,替换为大写的R,同时替换设置字体格式为Wingdings 2。
代码如下:
Sub exceloffice()
Dim oDoc As Document
Set oDoc = Word.ActiveDocument
Dim oRng As Range
Set oRng = oDoc.Content
Arr = Array(“1、重大决策□”, “2、重要干部任免、奖惩□”, “3、重大项目安排□”, “4、大额资金使用□”, “5、其他□”)
‘条件是“重大决策”
sText = “重大决策”
For i = 0 To UBound(Arr)
If Arr(i) Like “*” & sText & “*” Then
‘将满足条件的项目的无√框替换为一个特殊的字符串,这里是8个美元符号组成的生僻词,在word文档中不可能出现这样的词”
Arr(i) = VBA.Replace(Arr(i), “□”, “$$$$$$$$”)
End If
Next i
With oRng
.Text = Join(Arr, vbTab)
With .Find
‘查找特殊的字符串
.ClearFormatting
.Text = “$$$$$$$$”
With .Replacement
.ClearFormatting
‘替换为大写字母R
.Text = “R”
‘要替换的格式
.Font.Name = “Wingdings 2”
End With
‘批量查找替换
.Execute Format:=True, Replace:=wdReplaceAll
End With
End With
End Sub
[此贴子已经被作者于2022/3/4 15:22:45编辑过]
|
-- 作者:cnsjroom
-- 发布时间:2022/3/6 23:27:00
-- 回复:(有点蓝)这个vba我看不懂。如果要在模板设置&...
<IIF([一类谈话],"R一类谈话","□一类谈话")> & <IIF([二类谈话],"R二类谈话","□二类谈话")> & <IIF([三类谈话],"R三类谈话","□三类谈话")>
此主题相关图片如下:1.png
<IIF([一类谈话],"R一类谈话","□一类谈话") & IIF([二类谈话],"R二类谈话","□二类谈话") & IIF([三类谈话],"R三类谈话","□三类谈话")>
此主题相关图片如下:2.png
这两个写法都没有正常显示出想要的效果
输出得到的是
<IIF(True,"R一类谈话","□一类谈话")> & <IIF(False,"R二类谈话","□二类谈话")> & <IIF(False,"R三类谈话","□三类谈话")>
此主题相关图片如下:3.png
经测试<IIF([一类谈话],"是","否")> 这个 如果是true会显示是 反之就显示否
有没有办法实现带框的打钩或不打勾的带框呢?
[此贴子已经被作者于2022/3/6 23:43:24编辑过]
|