如何使用excel宏更改(格式化)所选文本,而不是整个选定单元格

时间:2018-04-01 07:59:48

标签: excel vba excel-vba select text

例如cell" C3"包含文字"法国是巨大的"。一些用户使用光标突出显示(选择)文本" huge"。然后使用一些宏,结果应该是这样的"法国 巨大 "。 (单词"巨大"是斜体粗体和灰色)。 重要的是要说所选单词的长度总是不同的,我不想改变所选单词的整个单元格。我整整一周都在寻找这个宏,但没有结果。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

编辑以使其更容易 ...

只是为了好玩,我通过Userform

制作了这个功能
  • 打开VBA IDE(键:ALT-F11)

  • 添加UserForm(单击“插入” - >“用户窗体”)

    这将为您的项目添加一个新的UserForm

    通过编辑"名称"将其默认名称(某些" UserForm1"或类似名称)更改为有意义的名称(例如,#34; UserFormFormat")。 “属性”窗口中的文本框(F4将其弹出)

  • 显示工具箱(单击视图 - >工具箱)

  • 抓取TextBox控件并放入UserForm画布

  • 抓取一个Button控件并将其放入Userform画布

  • 选择Userform

  • 中的按钮
  • 编辑按钮"名称" (某些" CommandButton1"默认情况下)为某个有意义的名称(例如:" BtnBold")

  • 编辑按钮"标题" (某些" CommandButton1"默认情况下)为某个有意义的名称(例如:" Bold")

  • 双击Userform

    上的按钮

    它将打开其CommandButton1_Click()事件处理程序代码窗格

  • 插入代码以具有以下内容

    Private Sub BtnBold_Click()
        With TextBox1
            ActiveCell.Characters(.SelStart, .SelLength + 1).Font.Bold = Not ActiveCell.Characters(.SelStart, .SelLength + 1).Font.Bold
        End With
        Me.Hide
    End Sub
    
  • 转到您的Excel工具

  • 点击菜单开发 - >宏

  • 在" Macro"对话框清除"宏名称"文本框,插入有意义的名称(例如:" formatMacro")并按"创建"按钮

    这将带您进入带有以下代码的新模块代码窗格

    Sub formatMacro()
    
    End Sub
    
  • 编辑该代码以便

    Sub formatMacro()
        With UserFormFormat
            .TextBox1.Text = Selection.Value2
            .Show
         End With
        Unload UserFormFormat
    End Sub
    
  • 按照these instructions并在快速访问工具栏中添加一个按钮来运行您的宏

  • 返回Excel用户界面,选择包含文字的单元格,然后点击您在QAT中添加的按钮

  • 观察会发生什么......

当然,您可以让一个按钮一次执行更多格式化

例如,你可以添加一些其他BtnBold_Italic按钮" Bold&斜体"标题的点击事件代码为:

    Private Sub BtnBold_Italic_Click()
        With TextBox1
            With ActiveCell.Characters(.SelStart, .SelLength + 1).Font
                .Bold = Not .Bold
                .Italic = Not .Italic
            End With
        End With
        Me.Hide
    End Sub

依此类推(你可以一次性添加文字大小,颜色......)