EXCEL VBA 数据有效性代码问题

Sub Validation()
With Range("A1:AR36").Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:="123,1234,12345,12346"
End With
End Sub
写了个有数据有效性的代码 如下图所示
但是选择了下拉框中的数据以后是没有颜色的
如何使选中的数据自动带颜色和黑体?如选123 则单元格中自动出来红色123

在VBA工程浏览器里双击你要控制的工作表,如Sheet1,添加Worksheet的change事件,就是当工作表里文本发生改变时触发该事件,参数是发生改变的区域。代码如下:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Text = "123" Then '如果选择的是123
Target.Interior.Color = RGB(255, 0, 0) '这个是背景色,RGB格式的颜色,可以自己随便改
Target.Font.Name = "黑体" '字体名称
Target.Font.Bold = True '是否为粗体
Target.Font.Color = RGB(0, 255, 0) '这个是文本颜色,RGB格式的颜色,可以自己随便改
End If
End Sub
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-17
颜色通过条件格式来设置。
选中要设置的区域,在菜单“格式”-条件格式,设置单元格数值等于多少相对应的颜色,可以通过增加条件来设置各种数值及颜色
第2个回答  2010-08-17
Sub Macro1()

With Range("A1:AR36").Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:="123,1234,12345,12346"
End With

Range("A1:AR36").FormatConditions.Delete
Range("A1:AR36").FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="123"
Range("A1:AR36").FormatConditions(1).Font.ColorIndex = 3
Range("A1:AR36").FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="1234"
Range("A1:AR36").FormatConditions(2).Font.ColorIndex = 5
Range("A1:AR36").FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="12345"
Range("A1:AR36").FormatConditions(3).Font.ColorIndex = 39
End Sub
第3个回答  2010-08-17
看看这个例子吧。写了一小段程序。
http://www.mofile.com/pickup/cpwvxpsqtkkj9kd/

EXCEL VBA 数据有效性代码问题
在VBA工程浏览器里双击你要控制的工作表,如Sheet1,添加Worksheet的change事件,就是当工作表里文本发生改变时触发该事件,参数是发生改变的区域。代码如下:Private Sub Worksheet_Change(ByVal Target As Range)If Target.Text = "123" Then '如果选择的是123 Target.Interior.Color = RGB(255, 0, ...

excel利用VBA生成无重复无空值的数据有效性下拉列表
1.按Alt+F11,打开VBA编辑器。2.在“工程”窗口中双击要包含数据有效性设置的工作表,在右侧代码窗口中输入下列代码:Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim RowNum, ListRows, ListStartRow, ListColumn As Integer Dim TheList As String Dim Repeated As Boolean If Targe...

vba数据有效性代码不知道为什么实现后没有右边的下拉箭头。。(>_<)求...
我觉得问题有可能出在“Formula1:=”后面的表达式上。不知道“提取不重复值(xxx)”这个表达是否是个自定义函数。虽然我不懂函数,但结合数据有效性的表达规则分析:1. 如果这个表达返回的是字符串型的结果,则该结果不应为空,而且其结果返回格式应类似于 .Add Type:=xlValidateList, AlertStyle:=x...

Excel 请教如何用VBA设置整列的数据有效性
手机WPS表格中怎么设置数据有效性,数据有效性控制数据长度

excel vba 数据有效性问题
在你单击CommandButton1控件时,该控件被激活,Validation失效。你可以通过激活工作表上的其他一些元素来避免该问题。'Private Sub CommandButton1_Click()Range("a1").Activate With Range("A1:A10").Validation .Delete .Add Type:=xlValidateList, _AlertStyle:=xlValidAlertStop, _Operator:=xl...

VBA 数据有效性的问题
如果是用recordset保存sql查询结果,先要做一些处理将结果赋给一个字符变量,比如:for i=0 to rs.recordcount validStr=iif(validStr="", rs(0), validStr & "," & rs(0))next 然后再赋给数据有效性 Range("A1").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, ...

excel图表技巧显示数据有效性列表
图1 我们可以使用一点小技巧,用VBA代码使得当用户选择数据有效性列表所在的单元格时,增大工作表的显示比例,使数据有效性列表中的字体随之变大,从而更清楚地看到其内容,其效果如下图2所示。图2 代码如下:Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim lZoom As Long Dim lDV...

VBA与数据有效性
数据有效性可以使用公式,=IF($A$1=1,$A:$A,IF($A$1=2,$B:$B,IF($A$1=3,$C:$C,$D$D)))我觉得这样是最简单的。但是excel2003数据有效性公式有长度限制,按照问者的要求只能实现到a1=3,再多写就不接受了。

excel中判断单元格是否有数据有效性设置的方法
步骤一:选择需要进行判断的单元格区域,比如A1:A5 步骤二:按ALT+F11组合键,打开VBE编辑器。步骤三:单击“插入”→“模块”,在新建模块中复制下面的代码:Sub 数据有效性是否判断()On Error GoTo 错误If ActiveCell.Validation.Type > 0 Then MsgBox "选区存在数据有效性": Exit Sub错误: MsgBox...

excel数据有效性
数据有效性是验证用户输入数据,不能验证公式的计算结果;如果要实现你要求的功能,按alt+F11键,在工作表加入vba代码如下:Private Sub Worksheet_Change(ByVal Target As Range)If [b1] < 50 ThenMsgBox ("数据小于50!")End IfEnd Sub

相似回答