2015-10-01 4 views
0

Я пытаюсь поместить значение ячейки в Msgbox, который находится в левом столбце (столбец A). Это значение должно быть выбрано, хотя в зависимости от того, какое значение в столбце B является самым низким и его следует использовать повторно, с разной длиной строк (иногда это 200 строк иногда 230 и т. Д.)Обратитесь к переменной, которая относится к Приложению

До сих пор я писал:

Sub Flow() 
'Check lowest value 

Dim lowestValue As String 


lowestValue = Application.WorksheetFunction.Min(Sheets("ImportData").Range("B3:B290")) 

MsgBox "Lowest Flow" & vbNewLine & _ 
(lowestValue) & vbNewLine & _ 
"at " & (lowestValue.Offset(0, -1)) 

End Sub 

Очевидно lowestValue.Offset(0, -1)) не работает, но в основном это то, что я хотел бы достичь: найти lowestValue, а затем посмотреть на одну колонку влево, а также отображать это значение в ячейке.

ответ

1

Вот один из способов:

Sub Flow() 
'Check lowest value 
    Dim rData     As Range 
    Dim lowestMatch 
    Set rData = Sheets("ImportData").Range("B3:B290") 
    lowestMatch = Application.Match(Application.Min(rData), rData, 0) 
    If Not IsError(lowestMatch) Then 
     MsgBox "Lowest Flow" & vbNewLine & _ 
       rData.Cells(lowestMatch).Value & vbNewLine & _ 
       "at " & rData.Cells(lowestMatch).Offset(0, -1).Value 
    End If 
End Sub 
+0

отлично работает. Я понял только сейчас, хотя иногда в столбце B есть два или более раз то же самое значение, и мне нужно будет получить все значения из столбца A в этих точках. Столбец A имеет отметки времени, поэтому они уникальны. Есть ли способ рассказать в окне сообщения самое низкое значение этого в момент времени X, время Y, время Z ...? – QuestJonas

Смежные вопросы