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

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Студент
Сообщения: 7
Зарегистрирован: 12 май 2009, 20:20

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

Конешно можно, только не очень понятно что.
Вы пример выложите поконкретне, где брать х как менять у и куда сваливать результат
Студент
Сообщения: 7
Зарегистрирован: 12 май 2009, 20:20

"х" задается первоначальной статистикой в виде 20 чисел
"у" изменяетсяот 0,1 до 0,9 с шагом 0,1
при 0,1
х*у все 20 результато суммируются и выходит общий рез-т снести его в новую созд табл в стр.1
при 0,2
тоже самое токо в стр.2 и т.д.
Заранее благодарен!
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

В приложении книга.
Первое X*Y там посчитано (B4). Просто скопируйте его на все остальные ячейки и все получится.
Обратите внимание на значок $ в ссылках.

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

См. в справке про абсолютные и относительные ссылки
Вложения
Книга3.zip
(4.29 КБ) 29 скачиваний
Студент
Сообщения: 7
Зарегистрирован: 12 май 2009, 20:20

Спасибки!!!
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Только я про х и у говорил образно у меня идут сложные вычисления!!!??? :confused:
vint
Сообщения: 37
Зарегистрирован: 19 мар 2009, 16:53

Может так ?
см. 123
всё таки не совсем понятно что именно нужно :confused:
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Только я про х и у говорил образно у меня идут сложные вычисления!!!???
направляй результаты своих вычислений в белые поля и всё.
Вложения
123.zip
(2.26 КБ) 16 скачиваний
Студент
Сообщения: 7
Зарегистрирован: 12 май 2009, 20:20

Можете дать Ваш мейл я скину покажу!?
vint
Сообщения: 37
Зарегистрирован: 19 мар 2009, 16:53

лучше сюда
так больше шансов что Вам кто то поможет
Студент
Сообщения: 7
Зарегистрирован: 12 май 2009, 20:20

Там все те табл есть под них макрос для расчёта(вводится только первоначальные данные)
Хотел бы зделать так, чтоб расчет велся макросом в одной табл и записывал рез-т (как у меня) в конечную табл.
Вложения
Книга2.zip
(27.53 КБ) 16 скачиваний
vint
Сообщения: 37
Зарегистрирован: 19 мар 2009, 16:53

если я правильно понял, у Вас есть код на каждую таблицу отдельно.
тогда можно в конце кода первой таблицы добавить вот такую процедуру чтобы он после своего просчёта переносил сумму в итоговую таблицу согласно значению указанному в поле "альфа=" , т.е. если Вы производили расчёт при альфа=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
Ответить