Форум программистов, компьютерный форум, киберфорум
Наши страницы

VBA

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

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

02.10.2009, 17:57. Просмотров 1572. Ответов 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):

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

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

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

Реверс двумерного массива - C#
У одномерного массива можно изменить порядок следования, использовав метод .Reverse(). А если такой метод у многомерного массива? или можно...

Реверс одномерного массива - C (СИ)
задача в следующем: Описать функцию Invert( ), меняющую порядок следования элементов массива A из N вещественных чисел на противоположный....

Реверс элементов массива - C++
Надо поменять значения элементов массива в обратном порядке.Первый-&gt;последний,второй-&gt;предпоследний и т.д. Т.е. ...

2
Yurii_74
paladin
280 / 180 / 3
Регистрация: 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 / 2
Регистрация: 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
Привет! Вот еще темы с ответами:

Реверс массива неизвестной длины - Pascal
Здравствуйте,помогите пожалуйста написать программу.Напишите программу, которая выполняет реверс массива целых чисел, то есть переставляет...

Реверс одномерного массива (или строки) - Visual Basic .NET
Private Sub btnYoda_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnYoda.Click txt1.Text = &quot;0...

Реверс массива, полученного в результате работы метода Split() - C#
Добрый день. Как сделать что б Split начинал работу с конца строки? То есть что бы строка=&quot;abc, def, ghi, gkl, mno&quot; была в s=&quot;mno&quot;,...

Реверс цифр длинных чисел одномерного массива (итерация и рекурсия) - C++
Разработать функцию, которая переставляет в обратном порядке цифры заданного длинного целого числа (например, число 5321 превращается в...


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

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

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