程序中 A:D 是需要修改颜色的列区域; [G1] 是参数,希望能给予帮助
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim My_a
My_a = Target.Row
Range("A:D").Interior.ColorIndex = xlNone '选定区域全部取消底色
With Range("A" & My_a & ":D" & My_a).Interior
.ColorIndex = [G1] '修改 [G1] 单元格的数值即可,也可将 [G1] 直接修改为数值
.Pattern = xlSolid
End With
End Sub
'默认的参数值如下
'2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56
补充: [G1] 为参数的下拉菜单元格 ,可即时改变参数
1、先将所有参数值复制到不影响操作的列(本工作表)
2、建立下拉菜单:光标放在建立菜单的单元格。如:G1
3、执行:数据 → 有效性 → 允许处选择(序列) → 输入参数值(“,”隔离)或选取参数所在列的相应区域
4、改变菜单的值,即可改变不同的颜色。
光标定在哪个单元格,窗口的左上角会显示单元格名,行号会窗口的左边也能看到啊,而且选中的单元格也会有个边框似的状态,我不懂你的意思,为什么要设置颜色呢。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim mRng As Range, mR%, mC%, mPwd$
Set mRng = Range("D5:S50") '此处指定范围
mPwd = "1234" '此处指定工作表保护密码
If Selection.Cells.Count > 1 Or Intersect(mRng, Target) Is Nothing Then Exit Sub
ActiveSheet.Unprotect mPwd
mRng.Interior.ColorIndex = xlNone
Intersect(mRng, Rows(Target.Row)).Interior.Color = vbYellow
Intersect(mRng, Range("a1", Target), Columns(Target.Column)).Interior.Color = vbYellow
ActiveSheet.Protect mPwd
End Sub