网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月20日漏签0天
excel吧 关注:281,356贴子:1,549,808
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 23回复贴,共1页
<<返回excel吧
>0< 加载中...

单词的音标通过公式提取后,原有的斜体 角标 下划线 怎样保留

  • 只看楼主
  • 收藏

  • 回复
  • fly街角De风铃_
  • E见钟情
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
B列是 单词的音标,其中包含 斜体、角标、下划线 多种状态,如图所示。
C列是 复制B列内容的。
D列是 通过公式 =LEFT(B2,FIND("t",C2)-1) ,得到 t 之前的字符。
但得到的结果,原有的斜体、角标 状态全无,变成了普通的状态。
原来的下划线也变成了 GWIPA字体里不能被识别的字符方框。
请教各位老师,如何才能 提取出相应的字符,而且保留原有的斜体、角标、下划线 状态。
用VBA如何能做到? 期待各位老师的回答。


  • 菠萝蜜
  • E览无余
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
'觉得解决起来挺费劲的,写了一个测试代码。
'先获取单元格中各元素指定的属性到一个数组中去(这里假设是4个属性)
'截取字符串,再调取先前的属性设置新的字符串属性
Option Explicit
Type rngfontattr
  itc As Boolean '斜体
  up As Boolean '上标
  down As Boolean '下标
  udlne As Long '下划线
End Type
Sub test()
  Dim fontattr As rngfontattr, i
  With [d8] '获取属性
    For i = 1 To Len([d8])
      fontattr.itc = .Characters(i, 1).font.Italic
      fontattr.up = .Characters(i, 1).font.Superscript
      fontattr.down = .Characters(i, 1).font.Subscript
      fontattr.udlne = .Characters(i, 1).font.Underline
      Debug.Print fontattr.itc,
      Debug.Print fontattr.up,
      Debug.Print fontattr.down,
      Debug.Print fontattr.udlne
    Next
  End With
End Sub


2025-07-20 01:47:52
广告
  • 菠萝蜜
  • E览无余
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Option Explicit
Sub test()
  Dim i, j
  For i = 2 To [b65536].End(xlUp).Row
    Cells(i, 4) = Split(Cells(i, 2), "t")(0) '假设都有"t"且小写
    For j = 1 To Len(Cells(i, 4))
      Cells(i, 4).Characters(j, 1).font.Italic = Cells(i, 2).Characters(j, 1).font.Italic
      Cells(i, 4).Characters(j, 1).font.Superscript = Cells(i, 2).Characters(j, 1).font.Superscript
      Cells(i, 4).Characters(j, 1).font.Subscript = Cells(i, 2).Characters(j, 1).font.Subscript
      Cells(i, 4).Characters(j, 1).font.Underline = Cells(i, 2).Characters(j, 1).font.Underline
  Next j, i
End Sub


  • 菠萝蜜
  • E览无余
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
'直接运行test即可,可以在for j循环中添加或删除指定的属性


  • 菠萝蜜
  • E览无余
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Option Explicit
Sub test()
  Dim i, j
  For i = 2 To [b65536].End(xlUp).Row
    Cells(i, 4) = Split(Cells(i, 2), "t")(0) '假设都有"t"且小写
    For j = 1 To Len(Cells(i, 4))
      Cells(i, 4).Characters(j, 1).font.Italic = Cells(i, 2).Characters(j, 1).font.Italic
      Cells(i, 4).Characters(j, 1).font.Superscript = Cells(i, 2).Characters(j, 1).font.Superscript
      Cells(i, 4).Characters(j, 1).font.Subscript = Cells(i, 2).Characters(j, 1).font.Subscript
      Cells(i, 4).Characters(j, 1).font.Underline = Cells(i, 2).Characters(j, 1).font.Underline
      Cells(i, 4).Characters(j, 1).font.Size = Cells(i, 2).Characters(j, 1).font.Size
      Cells(i, 4).Characters(j, 1).font.Bold = Cells(i, 2).Characters(j, 1).font.Bold
  Next j, i
End Sub


  • 硫酸下
  • E夫当关
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Sub heh()
Range([C2], [C65536].End(xlUp)).Copy [D2]
For Each i In Range([D2], [D65536].End(xlUp))
If InStr(i, "t") Then i.Characters(Start:=InStr(i, "t"), Length:=99).Delete
Next
End Sub
写了一个,删除后边字段的代码。


  • 硫酸下
  • E夫当关
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Sub heh()
Range([C2], [C65536].End(xlUp)).Copy [D2]
For Each i In Range([D2], [D65536].End(xlUp))
If InStr(i, "t") Then
i.Characters(1, 0).Text = "''"
i.Characters(InStr(i, "t"), 99).Delete
End If
Next
End Sub


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 23回复贴,共1页
<<返回excel吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示