Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Код вставки формулы в нужный дапазон - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Код вставки формулы в нужный дапазон (Макросы/Sub)
Код вставки формулы в нужный дапазон
Leshka Дата: Вторник, 06.09.2016, 15:08 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Уважаемые спецы помогите дописать код. Нужно чтобы формула считалась в диапазоне С4:С71 данные добавляются через UserForm. Не могу понять как задать диапазон автоматически, чтоб не вбивать все ячейки в ручную. Заранее всем СПАСИБО!!!
[vba]
Код
Private Sub CommandButton3_Click()
ThisWorkbook.Worksheets("Прочность").Range("C4").Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
ThisWorkbook.Worksheets("Прочность").Range("C5").Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
ThisWorkbook.Worksheets("Прочность").Range("C6").Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
ThisWorkbook.Worksheets("Прочность").Range("C7").Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
ThisWorkbook.Worksheets("Прочность").Range("C8").Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
ThisWorkbook.Worksheets("Прочность").Range("C9").Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
ThisWorkbook.Worksheets("Прочность").Range("C10").Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
ThisWorkbook.Worksheets("Прочность").Range("C11").Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
End Sub
[/vba]
Как сделать чтобы до ячейки С71 прошло автоматом?
К сообщению приложен файл: 9793861.xlsm(55Kb)


Сообщение отредактировал Manyasha - Вторник, 06.09.2016, 15:15
 
Ответить
СообщениеУважаемые спецы помогите дописать код. Нужно чтобы формула считалась в диапазоне С4:С71 данные добавляются через UserForm. Не могу понять как задать диапазон автоматически, чтоб не вбивать все ячейки в ручную. Заранее всем СПАСИБО!!!
[vba]
Код
Private Sub CommandButton3_Click()
ThisWorkbook.Worksheets("Прочность").Range("C4").Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
ThisWorkbook.Worksheets("Прочность").Range("C5").Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
ThisWorkbook.Worksheets("Прочность").Range("C6").Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
ThisWorkbook.Worksheets("Прочность").Range("C7").Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
ThisWorkbook.Worksheets("Прочность").Range("C8").Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
ThisWorkbook.Worksheets("Прочность").Range("C9").Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
ThisWorkbook.Worksheets("Прочность").Range("C10").Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
ThisWorkbook.Worksheets("Прочность").Range("C11").Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
End Sub
[/vba]
Как сделать чтобы до ячейки С71 прошло автоматом?

Автор - Leshka
Дата добавления - 06.09.2016 в 15:08
_Boroda_ Дата: Вторник, 06.09.2016, 15:23 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 9375
Репутация: 3948 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Можно циклом,
[vba]
Код
    For i = 4 To 71
        ThisWorkbook.Worksheets("Прочность").Range("C" & i).Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
    Next i
[/vba]
можно сначала вставить в весь диапазон формулы, потом заменить их на значения
[vba]
Код
    ThisWorkbook.Worksheets("Прочность").Range("C4").Resize(68).Formula = "=RAND()* " & (TextBox4 - TextBox5) + TextBox5
    ThisWorkbook.Worksheets("Прочность").Range("C4").Resize(68) = ThisWorkbook.Worksheets("Прочность").Range("C4").Resize(11).Value
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеМожно циклом,
[vba]
Код
    For i = 4 To 71
        ThisWorkbook.Worksheets("Прочность").Range("C" & i).Value = Rnd() * (TextBox4 - TextBox5) + TextBox5
    Next i
[/vba]
можно сначала вставить в весь диапазон формулы, потом заменить их на значения
[vba]
Код
    ThisWorkbook.Worksheets("Прочность").Range("C4").Resize(68).Formula = "=RAND()* " & (TextBox4 - TextBox5) + TextBox5
    ThisWorkbook.Worksheets("Прочность").Range("C4").Resize(68) = ThisWorkbook.Worksheets("Прочность").Range("C4").Resize(11).Value
[/vba]

Автор - _Boroda_
Дата добавления - 06.09.2016 в 15:23
Leshka Дата: Вторник, 06.09.2016, 15:31 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
_Boroda_, ОЧЕЕЕЕНЬ БОЛЬШОЕ СПАСИБО!!! вариант с циклом то что надо
 
Ответить
Сообщение_Boroda_, ОЧЕЕЕЕНЬ БОЛЬШОЕ СПАСИБО!!! вариант с циклом то что надо

Автор - Leshka
Дата добавления - 06.09.2016 в 15:31
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Код вставки формулы в нужный дапазон (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!