首页 文章

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

提问于
浏览
0

例如,单元格"C3"包含文本"France is huge" . 某些用户使用光标高亮显示(选择)文本"huge" . 然后使用一些宏,结果应该看起来像这样“法国是 huge ". (The word "巨大”是斜体粗体和灰色) . 重要的是要说所选单词的长度总是不同的,我不想改变整个单元格只选择文本 . 我整整一周都在寻找这个宏,但没有结果 . 谢谢您的帮助 .

1 回答

  • 0

    编辑,使其更容易......

    为了好玩,我通过Userform编写了这个功能

    • 打开VBA IDE(键:ALT-F11)

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

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

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

    • show toolbox(单击View - > ToolBox)

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

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

    • 选择Userform中的Button

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

    • 编辑按钮“Caption”(默认情况下为“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用户界面

    • 单击菜单开发 - >宏

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

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

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

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

    • 看看会发生什么......

    当然你可以让一个按钮一次做更多格式化

    例如,您可以使用"Bold & Italic" Headers 添加其他 BtnBold_Italic 按钮,其单击事件代码为:

    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
    

    等等(你可以一次性添加文字大小,颜色......)

相关问题