Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2016, 00:59   #1
krisir
Новичок
Джуниор
 
Регистрация: 20.05.2016
Сообщений: 2
По умолчанию VBA отрицательные значения разделены на произведение положительных

Здравствуйте! Не пойму какая у меня ошибка, помогите найти. Задача состоит в следующем:Сформировать на рабочем листе Excel одномерный массив, состоящий из положительных, отрицательных и нулевых элементов Создать в EXcel новый массив, состоящий из элементов исходного массива, отрицательные значения которого разделены на произведение положительных значений массива
что я смогла в 2007 версии:
Public Sub mass()
Dim mass() As Single
Dim n As Integer
Dim m As Integer
Dim p As Single
Dim res As Single
Dim i As Byte
Dim j As Byte
n = Range("B3", Range("B3").End(xlDown)).count
ReDim mass(1 To n) As Single
For i = 1 To n
mass(i) = Cells(i + 2, 2)
Next i
p = 1
For i = 1 To n
If (mass(i) > 0) Then p = p * x(i)
End If
Next i
ReDim res(1 To m) As Single
For j = 1 To m
If (mass(i) < 0) Then res(j) = mass(i) / p
Cells(j + 2, 3) = res(j)
End If
Next j
End Sub
В чем здесь ошибка?
krisir вне форума Ответить с цитированием
Старый 20.05.2016, 06:54   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Компилятор выдает какие-то ошибки, на строку n=Range... не ругается? Вы сравнивали результат работы макроса с правильным решением которое вы написали формулами на листе?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 20.05.2016, 10:33   #3
krisir
Новичок
Джуниор
 
Регистрация: 20.05.2016
Сообщений: 2
По умолчанию

ругается на строку ReDim res(1 To m) As Single. а формулы на листе не задавала. у меня значения отрицат, положительные и ноль. но в операторе if для ноля условия нет, я его не включала.
krisir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal. Найти сумму и произведение положительных элементов массива Звездочка 22 Паскаль, Turbo Pascal, PascalABC.NET 4 01.02.2015 12:24
Произведение положительных элементов гл. диагонали (Pascal) Snake_009 Помощь студентам 2 07.02.2012 10:38
одномерный массив. Произведение положительных элементов массива PROkaZZZniK Помощь студентам 2 10.12.2011 01:02
Вычислить произведение положительных значений функции, меньших 1 wowan Паскаль, Turbo Pascal, PascalABC.NET 0 22.06.2011 20:02
C++ Массив 4х веществ элементов произведение положительных чисел anr Помощь студентам 1 14.01.2009 18:43