Как найти минимальное значение массива в VBA? - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть макрос VBA excel, который используется для расчета размера обрабатываемой детали.Первая часть макроса настроена на получение значений из рабочего листа, вычисление площади на основе некоторых предопределенных параметров и печать их для превосходства.Во второй части у меня есть некоторые проблемы.

Я преобразовал таблицу в 2D-массив (сохранение времени обработки) и начал заполнять массив с помощью 2 циклов, 1 контролирует строку, 1 столбец.В цикле я пытаюсь найти минимальное значение, не равное нулю, и связанный с ним столбец, это затем помогает с последней частью макроса, которая работает.Я также установил, что минимальное число является большим значением, которое никогда не будет превышено.

Когда я запускаю макрос шаг за шагом, первое, с которым сталкиваюсь нулевое значение, сбрасывает минимальное значение на ноль и не изменяетсяномер столбца.Кто-нибудь может подсказать мне, где я ошибся?

maxtubesel = Sheets("Tube OD").Cells(Rows.Count, "R").End(xlUp).Row - 4

'Find min and col value in array
Dim resarray() As Long
ReDim resarray(maxtubesel, 5)
min = 1000000
col = 0
For m = 0 To 2 ' maxtubesel
    For n = 0 To 4
        resarray(m, n) = Sheets("Tube OD").Cells(4 + m, 26 + n)
            If Sheets("Tube OD").Cells(4 + m, 26 + n) <> "" Or Sheets("Tube OD").Cells(4 + m, 26 + n) <> 0 Then
                min = Sheets("Tube OD").Cells(4 + m, 26 + n) And col = n
            End If
    Next n
Next m

1 Ответ

0 голосов
/ 29 ноября 2018

Эта строка

min = Sheets("Tube OD").Cells(4 + m, 26 + n) And col = n

должна состоять из двух строк

min = Sheets("Tube OD").Cells(4 + m, 26 + n)
col = n

, в противном случае на самом деле вы устанавливаете для min логическое значение, которое проверяет, истинны ли оба этих оператора.:

Sheets("Tube OD").Cells(4 + m, 26 + n)
col = n

Кажется, что это не так, min = False и это значение ноль:)

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