Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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
Vba 暂停宏并让用户选择颜色_Vba_Excel - Fatal编程技术网

Vba 暂停宏并让用户选择颜色

Vba 暂停宏并让用户选择颜色,vba,excel,Vba,Excel,是否可以在打开“格式单元格填充”对话框时停止此宏,以便我可以选择颜色,并在选择“确定”时继续脚本 Sub StripesOdd() Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ "=MOD(ROW(),2)=1" Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority Wit

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

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

是的,这是可能的。在你继续走这条路太远之前-VBA是一个自动化工具。如果我是你,我会花更多的时间根据数据设置颜色(即如果字段等于“x”,则使用蓝色),而不是让用户随机设置。如果需要手动干预,这不是自动化

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

找到这个了吗 它确实需要modColorFunctions bas文件

显示颜色选择器对话框

modColorFunctions模块包含一个名为 选择将显示Windows颜色选择器对话框的颜色选择器对话框,然后 返回RGB长颜色值。如果用户取消该对话框,则 结果是-1。比如说,

将RGB颜色调暗为同一长度
将默认值变暗为“长”
默认值=RGB(255,0,255)'默认为紫色
RGBColor=ChooseColorDialog(默认颜色:=默认)
如果RGBColor<0,则
调试。打印“***用户已取消”
其他的
调试。打印“选项:”&十六进制(RGBColor)
如果结束

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

可以请求输入。想办法选择颜色吗?可能使用带有activeX组件的userform,该activeX组件具有一系列颜色?
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