Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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 以动态方式应用VbColor属性_Excel_Vba - Fatal编程技术网

Excel 以动态方式应用VbColor属性

Excel 以动态方式应用VbColor属性,excel,vba,Excel,Vba,我正在尝试以动态方式应用VbColor属性。我将基本颜色保存在Excel的一个下拉列表中(蓝色、红色、黄色等),并尝试使用以下代码根据列表中选择的值应用颜色。但是我最终得到了一个错误(类型不匹配-运行时错误-13) 请帮忙!!先谢谢你 Dim Colours as variant Colours = "vb" & Sheet1.Range("K5").Value` ' You are passing a string value here

我正在尝试以动态方式应用VbColor属性。我将基本颜色保存在Excel的一个下拉列表中(蓝色、红色、黄色等),并尝试使用以下代码根据列表中选择的值应用颜色。但是我最终得到了一个错误(类型不匹配-运行时错误-13)

请帮忙!!先谢谢你

Dim Colours as variant
Colours = "vb" & Sheet1.Range("K5").Value`     ' You are passing a string value here
虽然您将颜色声明为变体,但您正在向其传递字符串。因此出现了不匹配错误。相反,您可以使用colorindex属性

Colours = Sheet1.Range("K5").Value               'Populate K5 with corresonding colorindex like say 3 for vbred.
Range(ActiveCell, ActiveCell.Offset(0, 8)).Select
Selection.Interior.ColorIndex = Colours 
虽然您将颜色声明为变体,但您正在向其传递字符串。因此出现了不匹配错误。相反,您可以使用colorindex属性

Colours = Sheet1.Range("K5").Value               'Populate K5 with corresonding colorindex like say 3 for vbred.
Range(ActiveCell, ActiveCell.Offset(0, 8)).Select
Selection.Interior.ColorIndex = Colours 

以下是如何评估相关颜色常数输入的示例:

Private Sub Test()   
    Dim Colours As Long
    
    Select Case Q3Sht.Range("K5").Value
        Case "Black": Colours = vbBlack
        Case "Red": Colours = vbRed
        Case "Green": Colours = vbGreen
        Case "Yellow": Colours = vbYellow
        Case "Blue": Colours = vbBlue
        Case "Magenta": Colours = vbMagenta
        Case "Cyan": Colours = vbCyan
        Case "White": Colours = vbWhite
    End Select
    
    Selection.Interior.Color = Colours
End Sub

以下是如何评估相关颜色常数输入的示例:

Private Sub Test()   
    Dim Colours As Long
    
    Select Case Q3Sht.Range("K5").Value
        Case "Black": Colours = vbBlack
        Case "Red": Colours = vbRed
        Case "Green": Colours = vbGreen
        Case "Yellow": Colours = vbYellow
        Case "Blue": Colours = vbBlue
        Case "Magenta": Colours = vbMagenta
        Case "Cyan": Colours = vbCyan
        Case "White": Colours = vbWhite
    End Select
    
    Selection.Interior.Color = Colours
End Sub

当字符串实际接受表示颜色的长值时,您试图将字符串传递给颜色属性。()vbBlue是一个常数,用于存储颜色值的实际值。您必须创建自己的Select语句来评估下拉输入以获得相关常量。是否有其他方法可以实现此目的?据我所知,没有,但颜色常量太多,所以不需要太长时间。请注意-您应该尝试完全限定代码并停止使用Select(请阅读此:)当字符串实际接受表示颜色的长值时,您试图将字符串传递给颜色属性。()vbBlue是一个常数,用于存储颜色值的实际值。您必须创建自己的Select语句来评估下拉输入以获得相关常量。是否有其他方法可以实现此目的?据我所知,没有,但颜色常量太多,所以不需要太长时间。请注意-您应该尝试完全限定代码并停止使用Select(请阅读此:)谢谢你的帮助!!!,谢谢你的帮助!!!,谢谢你的帮助!!!,谢谢你的帮助!!!,它起作用了