2016-02-19 2 views
0

Я ищу максимальное значение в заданном диапазоне, а затем мне нужно как-то получить адрес ячейки с MAXvalue или выбрать ячейку. Код, который я сделал, не работает - он возвращает дважды значение, а не адрес - что там не так?Выбрать ячейку со специфическим значением VBA

  '' set range to search in 
     Set rng = Range(ActiveCell.Offset(0, -5), ActiveCell.Offset(0, 5)) 
     '' find max value 
     VMax = Application.WorksheetFunction.Max(rng) 
     '' return the address of the cell with max value 
     Set c = rng.Cells.Find(What:=VMax, LookIn:=xlValues) 

Спасибо за помощь

+0

'c' имеет то, в чем вы нуждаетесь - как вы пытаетесь вывести его адрес? – vacip

ответ

0

Ваш c является диапазон, то есть адрес. В зависимости от того, что вам нужно, используйте любой из них:

c.Address 
c.Row 
c.Column 
+0

Я также думал, что, но когда я дал, например, 'Range (c) .Выберите 'он дает мне eggor' Method' Range 'объекта' _Global 'failed', но когда я его назначаю, например. 'a = c.Address', это нормально. Почему я должен переписать его? – vonski

+0

Вы, кажется, неправильно понимаете некоторые основные понятия здесь ... 'c' ** - это диапазон **. Вы не используете 'range (c)', поскольку вы не будете использовать 'range (range())'. Вам нужно использовать 'c.select'. Попытайтесь понять основные понятия объектно-ориентированного программирования и прочитайте объектные переменные VBA. – vacip

+0

Кроме того, ответ вам помог? Я не уверен, что полностью понял, что вам нужно. – vacip