Страница 1 из 2

Возможно ли такое реализовать?

Добавлено: 13 май 2009, 16:02
Студент
У меня есть макрос в excel "заполняет кучу одинаковых таблиц, при одинаковых первоначальных данных "х" и переменных "у"; х*у " возможно зделать чтоб он заполнял одну таблицу(из этих одинаковых) меняя "у" и записывая каждый результат х*у в отдельную табл.! Если такое возможно, подскажите код!

Re: Возможно ли такое реализовать?

Добавлено: 13 май 2009, 16:22
vint
Конешно можно, только не очень понятно что.
Вы пример выложите поконкретне, где брать х как менять у и куда сваливать результат

Re: Возможно ли такое реализовать?

Добавлено: 13 май 2009, 16:34
Студент
"х" задается первоначальной статистикой в виде 20 чисел
"у" изменяетсяот 0,1 до 0,9 с шагом 0,1
при 0,1
х*у все 20 результато суммируются и выходит общий рез-т снести его в новую созд табл в стр.1
при 0,2
тоже самое токо в стр.2 и т.д.
Заранее благодарен!

Re: Возможно ли такое реализовать?

Добавлено: 13 май 2009, 21:29
Naeel Maqsudov
В приложении книга.
Первое X*Y там посчитано (B4). Просто скопируйте его на все остальные ячейки и все получится.
Обратите внимание на значок $ в ссылках.

Формула =$A4*B$3 как бы модифицируется при копированнии.

См. в справке про абсолютные и относительные ссылки

Re: Возможно ли такое реализовать?

Добавлено: 14 май 2009, 00:00
Студент
Спасибки!!!
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Только я про х и у говорил образно у меня идут сложные вычисления!!!??? :confused:

Re: Возможно ли такое реализовать?

Добавлено: 14 май 2009, 00:16
vint
Может так ?
см. 123
всё таки не совсем понятно что именно нужно :confused:
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Только я про х и у говорил образно у меня идут сложные вычисления!!!???
направляй результаты своих вычислений в белые поля и всё.

Re: Возможно ли такое реализовать?

Добавлено: 14 май 2009, 11:07
Студент
Можете дать Ваш мейл я скину покажу!?

Re: Возможно ли такое реализовать?

Добавлено: 14 май 2009, 11:41
vint
лучше сюда
так больше шансов что Вам кто то поможет

Re: Возможно ли такое реализовать?

Добавлено: 14 май 2009, 12:06
Студент
Там все те табл есть под них макрос для расчёта(вводится только первоначальные данные)
Хотел бы зделать так, чтоб расчет велся макросом в одной табл и записывал рез-т (как у меня) в конечную табл.

Re: Возможно ли такое реализовать?

Добавлено: 14 май 2009, 15:07
vint
если я правильно понял, у Вас есть код на каждую таблицу отдельно.
тогда можно в конце кода первой таблицы добавить вот такую процедуру чтобы он после своего просчёта переносил сумму в итоговую таблицу согласно значению указанному в поле "альфа=" , т.е. если Вы производили расчёт при альфа=0,4 то и результат будет напротив 0,4
(работайте в первой табл. меняя значения "альфа=" и надобность в остальных таблицах отпадёт - можно удалить, только при перемещении итоговой таблицы меняйте и значение в коде.
думаю разберётесь

Код: Выделить всё

Dim alfa As Variant 'переменная для альфа в ячейке "B29"
alfa = Application.ThisWorkbook.Worksheets("Лист1").Range("B29").Value

Dim suma As Variant 'переменная для итоговой суммы в ячейке "H51"
suma = Application.ThisWorkbook.Worksheets("Лист1").Range("H51").Value

iRow = 258 'начинаем смотреть с ячейки "B258" итоговой таблицы и вниз пока не пусто
Do While (Application.ThisWorkbook.Worksheets("Лист1").Range("B" & iRow).Value <> "")
Dim s As Variant         'переменная что ищем
    s = Application.ThisWorkbook.Worksheets("Лист1").Range("B" & iRow).Value

If s Like alfa Then      'если совпало тогда переносим в итоговую таблицу

Application.ThisWorkbook.Worksheets("Лист1").Range("C" & iRow).Value = suma

Exit Do       ' выход из цикла при достижении результата
End If

iRow = iRow + 1 'если нет то сравниваем в след. строке
Loop 'конец цикла поиска
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
чтобы значения альфа= и 1-альфа= менялись автоматом, можно засунуть весь полученный код еще в один цикл типа этого

Код: Выделить всё

Sub ciklznacheniy()
For iCount  =  0.1 To 0.9 Step 0.1
i = i + 1
' здесь вся Ваша процедура
Next
End Sub