首页 > 解决方案 > 无法设置 ActiveCell 内部颜色

问题描述

下面的代码提前终止,因此永远不会设置内部颜色。知道我做错了什么吗?

第二个问题是它似乎没有正确地获取参数“c”的背景颜色。它似乎总是使用白色 (16777215) 作为背景颜色,即使我已将背景颜色设置为其他颜色。

Function Darken(c As Range) As Long 
chg = 0.8 
Dim clr As Long

 clr = ActiveSheet.Cells(c.Row, c.Column).Interior.Color  '<< ALWAYS GRABS 16777215, REGARDLESS OF ACTUAL BACKGROUND COLOR
 cRed = clr Mod 256 
 cGreen = (clr \ 256) Mod 256 
 cBlue = clr \ (65336)

 ActiveCell.Interior.Color = RGB(Int(cRed * chg), Int(cGreen * chg), _
 Int(cBlue * chg)) '<< CODE TERMINATES HERE PREMATURELY. WHY DOESN'T IT LIKE THIS?

 Darken = clr 
End Function

标签: excelvba

解决方案


推荐阅读