2016-07-17 3 views
1

Я пытаюсь написать небольшой фрагмент VBA, который будет затенять столбец excel на основе переменных RGB в соседних столбцах. Таким образом, у меня есть таблица данных (без заголовков) с 3 столбцами (R G и B) и x строк (количество будет варьироваться). Я хотел бы покрасить 4-й столбец справа от этой таблицы в цвете на основе 3 цифр слева. Обратите внимание, что я планирую выбирать верхнюю левую ячейку каждый раз, когда я ее выполню.VBA - Ошибка при использовании ActiveCell и CurrentRegion

Ниже приведен код, который я использовал, но я получаю сообщение об ошибке:

Ошибка 438 ... Объект оленьей кожи поддерживает это свойство или метод

указывая на Set rng линии, будучи проблема.

Любые мысли или помогают значительно appreicated

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

Так линия

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 
+0

Большое спасибо - кажется, помогли. Но это привело к следующей проблеме. Теперь я получаю ошибку ошибки несоответствия типа 13 в строке «ActiveCell.Interior.Color = RGB (rng.Cells (n, 1), rng.Cells (n, 2), rng.Cells (n, 3))« Любой идеи? –

+0

@JonathanHutchison, возможно, одна из ваших ячеек не содержит числа. – arcadeprecinct

Смежные вопросы