Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » Разное - Задача Excel VBA

Ответить
Настройки темы
Разное - Задача Excel VBA

Новый участник


Сообщения: 20
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый вечер! Помогите, пожалуйста решить задачу VBA и найти сумму.
Код: Выделить весь код
    
     n
S= Ʃ    (Под корнем) xi - 1
    i=1

Отправлено: 21:10, 09-12-2010

 

Модератор


Moderator


Сообщения: 16830
Благодарности: 3245

Профиль | Сайт | Отправить PM | Цитировать


Откуда берутся Xi?
Каково значение n?
Куда сохранять результат?

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Отправлено: 21:14, 09-12-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 20
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата okshef:
Xi »
Это переменная
Цитата okshef:
Куда сохранять результат? »
Значение переменных вводятся в таблицу Excel, и это значение расчитывается при нажатии на кнопку которая ссылается на этот "макрос" + нужно, чтоб расчитывалась сумма. Это задача по информатике, больще условий не дается, хочу на примере понять как они решаются

Отправлено: 23:15, 09-12-2010 | #3


Модератор


Moderator


Сообщения: 16830
Благодарности: 3245

Профиль | Сайт | Отправить PM | Цитировать


Хорошо, тогда такой вариант, как пример:
1. В ячейках A1:A10 - значения X
2. В ячейках B1:B10 - формула
Код: Выделить весь код
=корень(А1-1)
=корень(А2-1)
...
=корень(А10-1)
3. В ячейке В11 формула
Код: Выделить весь код
=СУММ(B1:B10)
но это - без VBA. Макрос - чуть позже.
А вот и макрос
Код: Выделить весь код
Sub sum_sqr()
i = 1 ' присвоение начальных значений
S = 0
Do While Cells(i, 1) <> "" ' цикл - до тех пор, пока в ячейке не будет пусто
    S = S + Sqr(Cells(i, 1).Value - 1) ' последовательное суммирование результатов вычислений
    i = i + 1
Loop
Cells(i, 1) = S ' запись в ячейку, следующую за последним элементом массива суммы вычислений
End Sub

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Последний раз редактировалось okshef, 09-12-2010 в 23:55.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:35, 09-12-2010 | #4


Новый участник


Сообщения: 20
Благодарности: 0

Профиль | Отправить PM | Цитировать


okshef, большое спасибо! Буду разбиратся.

Отправлено: 19:07, 10-12-2010 | #5


Новый участник


Сообщения: 20
Благодарности: 0

Профиль | Отправить PM | Цитировать


okshef, помогите, пожалуйста. Не могу разобраться:
1. Если к примеру у меня будет 2 переменных, как мне ввести 2?
2. Если под корнем будет выражение такого типа: a+b*2.1/(x^2-3) или x-2/(x+3), (к примеру), как мне его ввести?
3.
Цитата okshef:
Do While Cells(i, 1) <> "" ' цикл - до тех пор, пока в ячейке не будет пусто »
Для чего это нежно?

Отправлено: 16:55, 12-12-2010 | #6


Модератор


Moderator


Сообщения: 16830
Благодарности: 3245

Профиль | Сайт | Отправить PM | Цитировать


1. Введите две переменные, значения которых записаны в столбцах A и B:
Код: Выделить весь код
x1=Cells(i,1)
x2=Cells(i,2)
2. Как я понимаю a и b - постоянные? Задайте их до начала цикла: A=a: B=b. Можно присваивать значение x до вычисления суммы, добавив выражение
Код: Выделить весь код
x=Cells(i, 1)
Тогда формула в цикле будет иметь вид
Код: Выделить весь код
S=S+a+b*2.1/(x^2-3)
Соответственно, во втором случае поменяется только формула.
3. Для того, чтобы не быть ограниченным в количестве ячеек с данными. Как только данные закончились - вышли из цикла. Можно, конечно, заменить на явно заданный цикл
Код: Выделить весь код
For i=1 to N
....
Next
Но это только в том случае, если известно N

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:24, 12-12-2010 | #7


Новый участник


Сообщения: 20
Благодарности: 0

Профиль | Отправить PM | Цитировать


okshef, тогда при условии:
Код: Выделить весь код
    
     n
S= Ʃ    (Под корнем) a+b*2.1/(x^2-3)
    i=1
Получается так?
Код: Выделить весь код
Sub sum_sqr()
i = 1 ' присвоение начальных значений
S = 0
a=Cells(i,1)
b=Cells(i,2)
x=Cells(i,3)
Do While Cells(i, 1) <> "" ' цикл - до тех пор, пока в ячейке не будет пусто
    S = S + Sqr(Cells(i, 1).Value + Cells(i,2)*2.1/(Cells(i,3)^2-3)) ' последовательное суммирование результатов вычислений
    i = i + 1
Loop
Cells(i, 1) = S ' запись в ячейку, следующую за последним элементом массива суммы вычислений
End Sub
Цитата okshef:
Как я понимаю a и b - постоянные? »
Они могут быть и постоянными и переменными.
1. Что делают эти операторы Loop, как я понимаю, это конец цикла? Value и Cells.
2. Как сделать, чтоб значения которые я ввожу были не превязаны к определенной ячейке, а назначались, к примеру буквами a, b, x.

Отправлено: 18:30, 12-12-2010 | #8


Модератор


Moderator


Сообщения: 16830
Благодарности: 3245

Профиль | Сайт | Отправить PM | Цитировать


Присвоение значений переменных нужно внести в цикл.
Код: Выделить весь код
Do While Cells(i, 1) <> ""
a=Cells(i,1).Value
b=Cells(i,2).Value
x=Cells(i,3).Value
    S = S + Sqr(a + b*2.1/(x^2-3))
    i = i + 1
Loop
Вы уж, пожалуйста, справку сами читайте: Оператор Do...Loop (Visual Basic)
Цитата JON4:
Value и Cells. »
Cells - объект, с которым вы работаете - ячейка. Чтобы воспользоваться одним из ее свойств "значение" обычно пишут .Value.

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Последний раз редактировалось okshef, 12-12-2010 в 22:24.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:40, 12-12-2010 | #9



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » Разное - Задача Excel VBA

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBA - VBA excel метод Холецкого romcd73 Программирование и базы данных 2 19-06-2009 10:03
VBA - помогите решить задачку Vba + Excel hellp123 Программирование и базы данных 3 14-03-2009 01:15
VBA - VBA | Отправить почту из Excel rewerty Программирование и базы данных 4 25-04-2006 14:21
VBA - MsOffice | абсолютные ссылки в VBA Excel Gast81 Программирование и базы данных 4 06-02-2006 13:26
VBA - Создание файлов *.xls из VBA Excel.я Bob7 Программирование и базы данных 1 06-07-2004 14:17




 
Переход