2015-11-19 3 views
0

Мне нужно отобразить ДА или НЕТ из данных EXCEL. Я попытался написать программу. Но я не могу найти решение. Он отображает ДА ​​только НЕТ, даже если выход должен быть НЕТ. Пожалуйста, помогите мне с этой программой.Excel Программирование VBA

Мне нужно проверить данные всего столбца C (данные от номера 2 до 1439 столбца). Если данные> = 0,003, он должен отображать НЕТ, иначе он должен отображать Да.

КОД:

' Declare array 
Dim arrMarks(0 To 1437) As Double 
Sub ArrayLoops() 

    ' Fill the array with numbers 
    Dim i As Integer 
    For i = LBound(arrMarks) To UBound(arrMarks) 
     arrMarks(i) = Range("C2:C1439").Select 
     Next i 


    ' Using If statement 

    For i = LBound(arrMarks) To UBound(arrMarks) 
    If arrMarks(i) >= 0.003 Then 
    MsgBox ("NO") 
    Else 
    End If 

    Next i 
    MsgBox ("YES") 

End Sub 
+0

использующим 'msgbox' достаточным для вас? – psychicebola

+0

Вы хотите показывать только «Нет»? – Bathsheba

+2

Разве это не лучше, чем [excel-formula] или [условное форматирование]? – Jeeped

ответ

1

Ваш «ДА» был вне как петли и испытания, так что именно поэтому вы получите его каждый раз! ;)

Посмотрите на то, как заполнить массив непосредственно из диапазона с .Value:

Sub ArrayLoops() 
'Declare array 
Dim arrMarks() 
Dim i As Integer 
'Fill the array with range 
arrMarks = Range("C2:C1439").Value 

'Using If statement 
For i = LBound(arrMarks, 1) To UBound(arrMarks, 1) 
    If arrMarks(i, 1) >= 0.003 Then 
     MsgBox ("NO") 
    Else 
     MsgBox ("YES") 
    End If 
Next i 

End Sub 
+0

Большое спасибо. Но когда я запускаю тот же код, что и ваш, это была ошибка «Run time Error 13»: Type Mismatch. Я не знаю, что это такое и как избавиться от него. Не могли бы вы мне помочь ! –

+0

Если у вас есть ошибка, plz также укажет, на какой строке! ;) Я предполагаю, что он находится на строке 'arrMarks = ...', попробуйте отредактировать! ;) – R3uK

+0

Как я могу узнать, что ошибка указана в определенной строке? –