Я получил много очень полезных советов в последней теме, которую я опубликовал об этом, но это не работает слишком хорошо, поэтому я подумал, что получу дополнительную помощь по этому вопросу.
Итак, у меня есть диаграмма, которая выглядит примерно так. Предположим, что верхнее левое значение 1 находится в ячейке A1:
x= 1 2 3 4 5 6 7 8
4 3 2 1 2 3 4 5
9 8 7 6 7 8 9 10
8 7 6 5 4 3 2 1
Sum= 21 18 15 12 13 14 15 16
Первая строка состоит из значений x от 1 до 8. Строки вторая, третья и четвертая представляют собой значения, полученные в результате использования значений x в первой строке в уравнении. Пятая строка является суммой второй, третьей и четвертой строк.
Что мне нужно, чтобы моя программа делала, используя VBA, чтобы просмотреть строку суммы, строку пять и определить наименьшее значение. В этом случае это будет 12. Затем он должен присвоить значение x для этого столбца переменной X-Min. Наконец, он должен присвоить значения x слева и справа от X-Min их собственным переменным, X-Left и X-Right.
Таким образом, для этого примера он просматривает строку суммы и находит наименьшее значение, равное 12. Таким образом, для этого столбца он переходит к строке 1 и присваивает значение 4 X-Min. Затем он сместится влево и присвоит X-Left = 3, а затем сместится вправо и присвоит X-Right = 5.
Кажется, это было бы очень просто, но у меня много проблем.
Из моего последнего сообщения я обнаружил, что использование функции MIN() в строке суммы найдет мне наименьшее значение. Затем функция ПОИСКПОЗ() может указать номер столбца, которым является значение. На этом этапе, поскольку я знаю, что все значения x находятся в первой строке, я могу использовать функцию ADDRESS() и, используя результаты функции MATCH(), получить адрес значения, которое я хочу для X-Min. Используя функцию ДВССЫЛ(), я могу получить значение этого адреса, присвоенное X-Min.
У меня есть несколько проблем. Во-первых, я не могу заставить это работать в VBA. Я продолжаю получать ошибки несоответствия данных. Во-вторых, я не уверен, как использовать этот метод, чтобы найти и присвоить значения для X-Left и X-Right. Я думал об использовании вывода адреса, а затем смещении влево и вправо, но я также продолжаю получать ошибки несоответствия данных.
Думаю, моя главная проблема в том, что я не уверен, как на самом деле сделать этот вывод, и как только он это сделает, использую вывод так, как мне нужно.
Я очень новичок в VBA, и многое из этого начинает немного ускользать от меня. Я понимаю, что делает каждая часть по отдельности, но когда они собираются вместе и выдают мне ошибки, я не совсем понимаю, почему.
Например, я пытаюсь заставить это работать в электронной таблице Excel, прежде чем даже использовать VBA, просто чтобы я знал, что делаю. Ввод:
=CELL(ADDRESS(5,MATCH(MIN(A5:H5),A5:H5,0)))
в формулу для ячейки дает мне #ЗНАЧ! ошибка.
Я просто очень запутался и был бы признателен за помощь!