Попытка получить максимальное число в диапазоне - PullRequest
0 голосов
/ 20 июня 2020

Привет, Я пытаюсь получить максимальное число из диапазона. Я связал 2 подхода для этого , один работает, другой нет, но он должен работать. Код ниже работает для меня, я могу получить максимум с помощью этого кода.

Dim mymax As Range
    Set mymax = Range("b13").CurrentRegion
    Range("b11").Value = Excel.Application.WorksheetFunction.Max(mymax)

Теперь код ниже не работает, почему он не работает? Технически должно работать. Не могли бы вы объяснить, почему он не дает мне максимальное число?

Dim mymax As String
       mymax = Range("b13").CurrentRegion.Address
       Range("b11").Value = Excel.Application.WorksheetFunction.Max(mymax)

Спасибо за ваше время и мнение.

Ответы [ 2 ]

1 голос
/ 20 июня 2020

То, что вы пробовали во втором коде, будет работать только следующими двумя способами:

Dim mymax As String
    mymax = Range("b13").CurrentRegion.Address
    Range("b11").Value = Excel.Application.WorksheetFunction.Max(Range(mymax))

Вы должны (повторно) преобразовать строку в диапазоне ...

Dim myArr As Variant
    myArr = Range("b13").CurrentRegion.Value
    Range("C11").Value = Excel.Application.WorksheetFunction.Max(myArr)

Max функция работает и с массивами ...

0 голосов
/ 20 июня 2020

"Технически должно работать"? Что дает вам такую ​​идею? Вы передаете строку функции, ожидающей диапазон - нет «технически», это просто не работает, поскольку вы используете неправильный тип переменной.

Есть причина, по которой работает первый пример. В VBA вы set диапазоны, и это то, что делает in.

Во втором примере вы используете строку, когда функция ожидает диапазон, который просто не может работать. Функция Max в электронной таблице не будет работать со строковым вводом - нет причин, по которым это должно происходить в VBA.

Позвольте мне сформулировать это так:

введите описание изображения здесь

Ваш второй код был эквивалентом формулы в E1, которая возвращает 0. То, что вы ищете, это формула в E2, которая возвращает 4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...