使用Excel公式返回文本中的字符

使用Excel公式返回文本中的字符,excel,text,excel-formula,wingdings,Excel,Text,Excel Formula,Wingdings,我希望在字符串末尾返回适当的Wingdings字符,公式如下所示: 我可以编写哪个公式来返回单元格中常规字符串末尾显示的Wingdings字符?(而不是“?”字符):实心圆字符用于在公式的真实情况下返回,空心圆字符用于在错误情况下返回,因此这两个字符位于绿色范围内。仅公式不能更改单元格部分的字体。 最好是使用VBA函数根据需要进行更改,您可以手动运行该函数,或者将其分配给按钮、计时器、事件等 此子项将当前活动单元格的最后一个字符更改为Wingdings: Sub LastLettWingdin

我希望在字符串末尾返回适当的Wingdings字符,公式如下所示:


我可以编写哪个公式来返回单元格中常规字符串末尾显示的Wingdings字符?(而不是“?”字符):实心圆字符用于在公式的真实情况下返回,空心圆字符用于在错误情况下返回,因此这两个字符位于绿色范围内。

仅公式不能更改单元格部分的字体。

最好是使用VBA函数根据需要进行更改,您可以手动运行该函数,或者将其分配给按钮、计时器、事件等

此子项将当前活动单元格的最后一个字符更改为Wingdings:

Sub LastLettWingding_Active()
    'changes the font for the last character of the **active** cell
    ActiveCell.Characters(Start:=Len(ActiveCell), Length:=1).Font.Name = "Wingdings"
End Sub
…这一个执行相同的操作,但对于当前选定的单元格或单元格范围:

Sub LastLettWingding_Selection()
    'changes the font for the last character of the all selected cells
    Dim c As Range
    For Each c In Application.Selection
        c.Characters(Start:=Len(c), Length:=1).Font.Name = "Wingdings"
    Next c
End Sub

编辑: 我没有意识到这是一个公式结果,你试图格式化的一部分

不幸的是,公式和VBA都不能更改部分公式结果的字体。

我唯一的建议是自动将
复制
+
粘贴值
到另一个单元格,使用上述函数更改该单元格的部分格式,或者“隐藏”原始(公式)单元格

编辑#2: 哦,是的,@TomSharpe's还让人们认为Unicode符号可能是一个更简单的解决方案(包括在大多数字体中,而不是使用没有字母表的单独字体)

✂ ✃ ✄ ✅ ✆ ✇ ✈ ✉ ✊ ✋ ✌ ✍ ✎ ✏ ✐ ✲ ✳ ✴ ✵ ✶ ✷ ✸ ✹ ✺ ✻ ✼ ✽ ✾ ✿ ❀ ❁ ❂ ❃ ❄ ❅ ❆ ❇ ❈ ❉ ❊ ❋ ❌ ➮ ➯ ➰ ➱ ➲ ➳ ➴ ➵ ➶ ➷ ➸ ⌚ ⌛ ❶ ❷ ❸ ❹ ❺ ● ◌ ○ ◊ ◦ □ ┘ ⌂ ⅕⃝ Ω ℗ Ө Ӂ Φ ʘ ʘ ① ② ③ ④ ⑤ 等等

单击空单元格,然后在
插入
选项卡上,单击
符号
。确保您使用的是“常规”字体(如Calibri),并向下滚动列表

双击所需的,然后插入

高亮显示当前显示在公式栏中的符号,从那里复制,现在可以将其粘贴到
IF
公式中


(或者,只需将符号从右上方复制到Excel公式中…

您可以使用char(149)获得一个公平的近似值 /常用字体之一的小写o

=IF(VALUE(RIGHT(C4,1))>=5,"Selected "&CHAR(149),"Selected o")

关于,上面的
Start
参数仅适用于
Start:=1
,并完全更改字符串,就像使用公式返回相应单元格的值一样。所以它只适用于特定的字符,只有当字符串是静态的并且没有返回公式时才有效。好的一点,我关注的是问题的字体部分而不是符号部分!基于这一思想,还有大量的Unicode符号将与标准字体一起使用。以上的方法帮助了我,因为我喜欢或更喜欢更好的格式(这样会消耗性能)。