Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA代码帮助-更改文字和颜色的按钮_Excel - Fatal编程技术网

Excel VBA代码帮助-更改文字和颜色的按钮

Excel VBA代码帮助-更改文字和颜色的按钮,excel,Excel,我想在excel中创建一个“按钮”,并想指定VBA或宏代码 我希望按钮的初始颜色为burgendy,表示“未选中”,单击时应表示“已选中”,并将颜色更改为绿色(从红色或burgendy) 再次单击后,它应返回到未选中状态,颜色应为burgendy 有人能帮忙吗 谢谢你的帮助 亲切问候, Azid检查,ActiveX控件可用于执行此操作。您可以执行以下操作。在excel工作表上,创建一个形状。转到插入/插图/形状/然后选择一个矩形形状。它会变成蓝色。您可以通过手动编辑到所需的默认颜色进行更改,以进

我想在excel中创建一个“按钮”,并想指定VBA或宏代码

我希望按钮的初始颜色为burgendy,表示“未选中”,单击时应表示“已选中”,并将颜色更改为绿色(从红色或burgendy)

再次单击后,它应返回到未选中状态,颜色应为burgendy

有人能帮忙吗

谢谢你的帮助

亲切问候,


Azid检查,ActiveX控件可用于执行此操作。

您可以执行以下操作。在excel工作表上,创建一个形状。转到插入/插图/形状/然后选择一个矩形形状。它会变成蓝色。您可以通过手动编辑到所需的默认颜色进行更改,以进行设置

在左上角,您应该更改形状的名称,以便可以在VBA代码中调用/引用它,例如“按钮1

您可以在该形状中添加/编辑文本。例如,“未选中”作为默认文本

然后右键单击形状并指定宏。然后,您可以链接到VBA中的子过程,只要单击它,就会调用它

在VBA代码编辑器中,可以添加以下代码:

子按钮单击()


End Sub

您好,谢谢您的帮助。代码不起作用。添加代码并点击形状后,只需选择形状,不改变颜色和名称。我希望我能在这里附上文件欢迎,stackoverflow不是一个“给我一个codez”论坛,你的问题应该包括你尝试了什么,什么不起作用,以及你的最低研究努力
Sub Button1_Click() 
    Dim Sh As Shape
    Dim innerText As String
    Set Sh = ActiveSheet.Shapes(Application.Caller)
    innerText = Sh.TextFrame2.TextRange.TrimText.text
    
    If (StrComp(innerText, "Unchecked", vbTextCompare) = 0) Then
        Sh.Fill.ForeColor.RGB = RGB(255, 200, 255)
        Sh.Fill.Transparency = 0
        
        Sh.TextFrame2.TextRange.text = "Checked"
    ElseIf (StrComp(innerText, "Checked", vbTextCompare) = 0) Then
        Sh.Fill.ForeColor.RGB = RGB(200, 255, 255)
        Sh.Fill.Transparency = 0
        Sh.TextFrame2.TextRange.text = "Unchecked"
    End If
End Sub
Sub Button1_Click() 
    Dim Sh As Shape
    Dim innerText As String
    Set Sh = ActiveSheet.Shapes(Application.Caller)
    innerText = Sh.TextFrame2.TextRange.TrimText.text
    
    If (StrComp(innerText, "Unchecked", vbTextCompare) = 0) Then
        Sh.Fill.ForeColor.RGB = RGB(255, 200, 255)
        Sh.Fill.Transparency = 0
        
        Sh.TextFrame2.TextRange.text = "Checked"
    ElseIf (StrComp(innerText, "Checked", vbTextCompare) = 0) Then
        Sh.Fill.ForeColor.RGB = RGB(200, 255, 255)
        Sh.Fill.Transparency = 0
        Sh.TextFrame2.TextRange.text = "Unchecked"
    End If
End Sub