2014-08-19 2 views
1

Я хочу установить адрес ячейки для переменной. И затем используйте эту переменную, чтобы установить формулу ячейки с ссылочной ячейкой rng. Кто-то должен иметь возможность дважды щелкнуть ячейку с помощью формулы и увидеть ссылку на ячейку rng, а не значение ячейки rng в формуле. У меня есть следующий код:Excel VBA: установка адреса ячейки для переменной «Обязательная ошибка объекта»

Dim rng As Range 
Dim j As integer 
j = 5 
Set rng = ActiveSheet.Cells(j, 1).Address(False, False) ' get error here 

ActiveSheet.Cells(1, 15).Formula = "=5*" & rng 

Я получаю эту «Object Required Error». Что я делаю не так?

ответ

1

Хорошо, поэтому я считаю, что мои проблемы состояли в том, что я неправильно понял тип, который ActiveSheet.Cells(j, 1).Address(False, False) есть.

ActiveSheet.Cells(j, 1).Address(False, False) является String, поэтому вы получите сообщение об ошибке, если вы установили Range на номер String. Простое изменение rng к String будет решить мою проблему:

Решение:

Dim rng As String 
Dim j As integer 
j = 5 
rng = ActiveSheet.Cells(j, 1).Address(False, False) ' works now 

ActiveSheet.Cells(1, 15).Formula = "=5*" & rng 
+1

Вы должны удалить 'Set' из вашей 4-й строки, так как' rng' больше не является объектом (Range). – guitarthrower

+0

^Yup, я думаю, я не понимал этого, когда я менял код из вопроса, чтобы стать ответом. Благодарю. – CSAW

2

В качестве альтернативы, в случае, если вам нужен rng что-нибудь еще, вы можете сделать следующее

Dim rng As Range 
Dim j As integer 
j = 5 
Set rng = ActiveSheet.Cells(j, 1) 

ActiveSheet.Cells(1, 15).Formula = "=5*" & rng.address