Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Microsoft Office и VBA > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 20.03.2013, 18:55   #1
sVa112
Пользователь
 
Регистрация: 29.09.2012
Сообщений: 10
По умолчанию Опредилить каких элементов в массиве больше

Дан массив целых чисел, опредилить каких элементов в массиве больше положительных или отрицательных.

Sub Lab_2()
Dim b() As Integer, i As Integer, n As Integer
Dim m1 As Integer, m2 As Integer
n = InputBox("Введите количество элементов в массиве")
Worksheets("Лист1").Range("A2").Val ue = n
ReDim b(n)
For i = 1 To n
b(i) = Worksheets("Лист1").Cells(i + 1, 3).Value
Next i
m1 = 0
m2 = 0
For i = 1 To n
If b(i) > 0 Then m1 = m1 + 1
If b(i) < 0 Then m2 = m2 + 1
Next i
If m1 > m2 Then Worksheets("Лист1").Range("A3").Val ue Ellse
Worksheets("Лист1").Range("A3").Val ue
End Sub

Помогите доделать, ошибку выбивает run time error "438"
sVa112 вне форума Ответить с цитированием
Старый 20.03.2013, 19:25   #2
IgorGO
МегаМодератор
СуперМодератор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,252
По умолчанию

вместо этого
If m1 > m2 Then Worksheets("Лист1").Range("A3").Val ue Ellse
Worksheets("Лист1").Range("A3").Val ue
пишите это
Код:
if m1=m2 then msgbox "Поравну" else msgbox "Больше " & iif(m1 > m2, "положительных", "отрицательных")
41001804815208 - Яндекс-деньги благодарности за удачные советы и решения можно отправлять прямо сюда)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO на форуме Ответить с цитированием
Старый 20.03.2013, 21:29   #3
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Варианты http://www.cyberforum.ru/vba/thread785670.html
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 20.03.2013, 22:15   #4
sVa112
Пользователь
 
Регистрация: 29.09.2012
Сообщений: 10
По умолчанию

Ввожу кол-во элементов в массиве, нажимаю ок и сразу выдаёт "поровну", где ошибка?
sVa112 вне форума Ответить с цитированием
Старый 20.03.2013, 22:30   #5
IgorGO
МегаМодератор
СуперМодератор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,252
По умолчанию

извините за "поравну". правильно поровну - и это один и вариантов состояния массива данных.
кстати, если на листе нет данных - то отрицательных 0 и положительных 0, т.е. их поровну.
41001804815208 - Яндекс-деньги благодарности за удачные советы и решения можно отправлять прямо сюда)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO на форуме Ответить с цитированием
Старый 20.03.2013, 23:34   #6
sVa112
Пользователь
 
Регистрация: 29.09.2012
Сообщений: 10
По умолчанию

Большое спасибо!
sVa112 вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
каких слов в тексте больше vitaxa3581 Общие вопросы C/C++ 1 18.01.2013 16:44
Подсчет количества элементов ,больше суммы предшествующих в одномерном массиве Felixjkee Помощь студентам 0 09.01.2013 11:30
Определить каких чисел в целочисленной последовательности больше:четных или кратных 3 naty7773 Помощь студентам 4 18.12.2012 12:01
определить каких букв больше в этом тексте Aimet Паскаль, Turbo Pascal, PascalABC.NET 2 16.06.2011 22:22
Строка содержит произвольный русский текст. Проверить, каких букв в нем больше: гласных или согласных. Михей91 Общие вопросы C/C++ 1 07.01.2010 17:57