Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
rrr2009
45 / 45 / 15
Регистрация: 02.10.2009
Сообщений: 158
#1

Реверс Массива - VBA

02.10.2009, 17:57. Просмотров 1666. Ответов 2
Метки нет (Все метки)

Привет! Подскажите как сделать следующее:
- есть аналог функции =СУММПРОИЗВ в excel на VBA:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Function Суммпроизв2(array1 As Range, array2 As Range) As Double
If array1.Cells.Count <> array2.Cells.Count Then
Суммпроизв2=CVErr(xlErrValue)
Exit Function
End If
 
Dim x1 As Range, i As Long
i=1
For Each x1 In array1
Суммпроизв2=Суммпроизв2+x1.Value*array2.Cells(i)
i=i+1
Next
End Function
эта функция перемножает и складывает элементы массивов в порядке: a1*b1+a2*b2+...+an*bn. Собственно вопрос - как сделать чтобы 1 из массивов был реверсирован, т.е. умножение первого элемента первого массива происходило на последний элемент второго массива и т.д. и складывалось Спасибо.

Добавлено через 22 минуты
все переделал

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Function Суммпроизв2(array1 As Range, array2 As Range) As Double
If array1.Cells.Count <> array2.Cells.Count Then
Суммпроизв2=CVErr(xlErrValue)
Exit Function
End If
 
Dim x1 As Range, i As Long
i=array2.Cells.Count
For Each x1 In array1
Суммпроизв2=Суммпроизв2+x1.Value*array2.Cells(i)
i=i-1
Next
End Function
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2009, 17:57
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Реверс Массива (VBA):

Дан массив А. Образовать реверс массива А в массиве В. Вывести оба массива и индексы элементов на экран в виде трех столбцов.
Дан массив А. Образовать реверс массива А в массиве В. Вывести оба массива и...

Реверс массива
Задание такое: Нужно сделать массив из 30 чисел, чтобы он отображался на экране...

Реверс массива
Написать программу, которая выводит содержимое массива на оборот. Пример:...

Реверс массива
Нужно сделать реверс чисел в массиве, написал код, но выдаёт при вводе 1 2 3 4...

Реверс массива
Реверс массива – это перестановка элементов в обратном порядке: меняются...

Реверс одномерного массива
задача в следующем: Описать функцию Invert( ), меняющую порядок следования...

2
Yurii_74
paladin
283 / 183 / 7
Регистрация: 25.02.2009
Сообщений: 592
02.10.2009, 18:02 #2
Может так:
Visual Basic
1
2
3
4
5
i=array2.Cells.Count
For Each x1 In array1
  Суммпроизв2 = Суммпроизв2 + x1.Value * array2.Cells(i)
  i = i - 1
Next
инет глючил только что. Не успел.
1
rrr2009
45 / 45 / 15
Регистрация: 02.10.2009
Сообщений: 158
02.10.2009, 18:19  [ТС] #3
Цитата Сообщение от Yurii_74 Посмотреть сообщение
Может так:
Visual Basic
1
2
3
4
5
i=array2.Cells.Count
For Each x1 In array1
  Суммпроизв2 = Суммпроизв2 + x1.Value * array2.Cells(i)
  i = i - 1
Next
инет глючил только что. Не успел.
Пасибо так бывает иногда, когда пишешь вопрос, через какое-то время сам находишь решение
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2009, 18:19
Привет! Вот еще темы с решениями:

Реверс двумерного массива
У одномерного массива можно изменить порядок следования, использовав метод...

Реверс массива в диапазоне от K до M
Реверс массива – это перестановка элементов в обратном порядке: меняются...

Реверс элементов массива
Надо поменять значения элементов массива в обратном...

Реверс половин массива
Помогите написать программу пожалуйста(только без функции swap) Массив имеет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru