2016-07-17 10 views
1

私は隣接する列のRGB変数に基づいてExcelセルの列を陰影付けする小さなVBAを作成しようとしています。だから私は3列(R GとB)とx行(量は変わる)のデータ(見出しなし)の表を持っています。私が望むのは、このテーブルの右側の4番目の列を、左側の3つの数字に基づいた色で塗りつぶすことです。私はこれを実行するたびに左上のセルを選択する予定です。以下は VBA - ActiveCellとCurrentRegionを使用したときのエラー

は、私が使用しているコードですが、私はエラーメッセージを取得:

エラー438 ...オブジェクトがあるとしてSet rngラインを指し、このプロパティまたはメソッド

をサポートdoesntのを問題。

任意の考えや多くの

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 

答えて

1

をappreicatedざるエラーError 438... Object doesnt support this property or methodが発生し

ので、ライン

Set rng = ActiveSheet.ActiveCell.CurrentRegion 

つまり、は.ActiveCellまたはActiveCellのいずれもが.CurrentRegionをサポートしていません。

ActiveCellは範囲であり、CurrentRegionRangeのプロパティですので、そうであってはなりません。

しかし、ActiveCellworksheetのプロパティではなく、Applicationのプロパティではありません。シートごとではなく、Excelインスタンスごとにアクティブなセルが1つしかないので意味があります。だからではなく、

Set rng = ActiveSheet.ActiveCell.CurrentRegion 

のちょうど

Set rng = ActiveCell.CurrentRegion 
+0

多くの感謝を使う - 助けているようです。しかし、それは次の問題を引き起こします。 "ActiveCell.Interior.Color = RGB(rng.Cells(n、1)、rng.Cells(n、2)、rng.Cells(n、3))"という行にエラー13の型不一致エラーが発生しました。アイデア? –

+0

@ JonathanHutchisonあなたのセルの1つに数値が含まれていない可能性があります。 – arcadeprecinct

関連する問題