根据单元格值动态选择条件格式范围

时间:2018-12-13 11:32:57

标签: excel vba

寻找条件格式化技巧来做到这一点。

如果单元格A1的值= 1,则应格式化单元格B1。如果A1的值= 2,则单元格B2。

应根据单元格A1的值动态更改条件格式设置范围。

1 个答案:

答案 0 :(得分:1)

这可以通过条件格式轻松解决,不需要VBA。

标记您的单元格B1 + B2,选择条件格式(来自Home-Tab),新建规则,选择“使用公式...”,输入File folder = getFilesDir(); File f= new File(folder, "doc_download"); f.mkdir(); 作为公式并进行设置格式化为您想要的任何内容。

更新(在评论后,您要设置的格式) 如果您要格式化的范围始终是相同的大小和相同的距离,则可以使用类似

的公式
=$A$1=ROW()

这将检查行是否在5到10之间,并将该列除以4以检查您所在的“块”。 =AND(MOD(COLUMN()-1,4)>0,INT((COLUMN()-1)/4)+1=$A$1,ROW()>=5,ROW()<=10) 部分可防止对col ModA ...

进行格式化

如果要格式化的块更加复杂,则可以使用UDF解决此问题:

E

现在,将以下公式用作条件格式。请注意,必须将格式化开始的左上单元格的地址作为参数传递给该函数。因此,如果您标记范围Public Function calcFormattingVal(r As Range) As Integer If Not Intersect(Range("B5:D10"), r) Is Nothing Then calcFormattingVal = 1 ElseIf Not Intersect(Range("F5:H10"), r) Is Nothing Then calcFormattingVal = 2 Else calcFormattingVal = -999 End If End Function ,请使用"B5:H12"作为参数。

B5