暂停宏并让用户选择颜色

时间:2013-10-03 10:51:44

标签: excel vba excel-vba

当打开格式单元格填充对话框时,是否可以使此宏停止,这样我可以选择颜色并在选择“确定”时继续运行脚本。

Sub StripesOdd()

    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=MOD(ROW(),2)=1"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = -0.14996795556505
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Application.Goto Reference:="StripesOdd"
End Sub

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。在继续沿着这条路走下去之前 - VBA是一种自动化工具。如果我是你,我会花更多时间根据数据设置颜色(即如果字段等于" x"然后颜色为蓝色),而不是允许用户随机进行。如果需要手动干预,则不是自动化。

您需要在代码中插入用户输入,这需要用户在代码继续之前进行选择。

http://www.cpearson.com/Excel/Colors.aspx上找到此信息 它确实需要modColorFunctions bas文件

  

显示拾色器对话框

     

modColorFunctions模块包含一个名为的函数   ChooseColorDialog将显示Windows颜色选择器对话框和   返回RGB Long颜色值。如果用户取消对话框,则   结果是-1。例如,

Dim RGBColor As Long
Dim Default As Long
Default = RGB(255, 0, 255) 'default to purple
RGBColor = ChooseColorDialog(DefaultColor:=Default)
If RGBColor < 0 Then
    Debug.Print "*** USER CANCELLED"
Else
    Debug.Print "Choice: " & Hex(RGBColor)
End If

当您希望用户输入颜色时,您需要将调用插入ChooseColorDialog。