我正在尝试编写一小段VBA,它会根据相邻列中的RGB变量对一列excel单元进行着色。所以我有一个数据表(没有标题),有3列(R G和B)和x行(数量会有所不同)。我想要的是根据左边的3个数字为这个表右边的第4列着色。请注意,我计划在每次执行此操作时选择左上角的单元格。
以下是我使用过的代码,但收到错误消息:
错误438 ...对象不支持此属性或方法
指出Set rng
行是问题所在。
任何有用的想法或帮助
Sub RGBTest()
Dim rng As Range
Dim n As Integer
Set rng = ActiveSheet.ActiveCell.CurrentRegion
ActiveCell.Offset(0, 3).Activate
For n = 1 To rng.Rows.Count
ActiveCell.Interior.Color = RGB(rng.Cells(n, 1), rng.Cells(n, 2), rng.Cells(n, 3))
ActiveCell.Offset(1, 0).Activate
Next n
End Sub
答案 0 :(得分:1)
所以行
Set rng = ActiveSheet.ActiveCell.CurrentRegion
导致错误Error 438... Object doesnt support this property or method
。
这意味着ActiveSheet
不支持.ActiveCell
或ActiveCell
不支持.CurrentRegion
。
ActiveCell
是一个范围,CurrentRegion
是Range
的属性,因此不应该是它。
但是,ActiveCell
不是worksheet的属性,而是Application
的属性。这是有道理的,因为每个Excel实例只有一个活动单元格,而不是每个工作表。而不是
Set rng = ActiveSheet.ActiveCell.CurrentRegion
只需使用
Set rng = ActiveCell.CurrentRegion