3

是否可以在打开格式单元格填充对话框时使此宏停止,以便我可以选择颜色并在选择 OK 时让脚本继续。

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
4

1 回答 1

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 的调用。

于 2015-04-04T04:20:48.203 回答