Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Заполнение диапазона ячеек информацией
 
Добрый день!
Помогите пожалуйста допилить макрос (написан с помощью макрорекордера), поиск не помог.
Цель: создать такой алгоритм работы кнопки при котором я ставлю курсор в любую новую ячейку столбца, жму кнопку и 14 правых ячеек заполняются нужными мне значениями.
После заполнения ячеек, курсор автоматически должен вставать на следующую строку.
Пример приложил.
Заранее спасибо!
 
Код
Sub no()
Range(ActiveCell, ActiveCell.Offset(0, 13)) = "no"
ActiveCell.Offset(1, 0).Activate
End Sub
Sub yes()
Range(ActiveCell, ActiveCell.Offset(0, 13)) = "no"
Cells(ActiveCell.Row, Int((ActiveCell.Column + 12) * Rnd) + 1) = "yes"
Cells(ActiveCell.Row, Int((ActiveCell.Column + 12) * Rnd) + 1) = "yes"
ActiveCell.Offset(1, 0).Activate
End Sub
 
Маргарита, спасибо большое!
То что надо :)
 
я думаю по первому имелось  ввиду это.
Код
Sub no()
Dim R%
R = ActiveCell.Row
Range(Cells(R, 1), Cells(R, 14)) = "no"
Cells(R + 1, 1).Activate
End Sub

во втором коде Randomize не помешает.
Изменено: V - 23 Апр 2015 15:30:04
 
Хотя, нет, поспешил.
Во 2м варианте "Да" должно стоять в определенных ячейках от начальной (например в 4й и 7й), а команда рандом генерит их случайном порядке.
Надо было мне сразу уточнить.
 
Цитата
V написал: я думаю по первому имелось  ввиду это.
V, Ваш вариант тоже приемлем, но у Маргариты лучше, можно заполнять 14 ячеек справа из любой ячейки листа, не только крайней левой.
В реальном файле заполнение у меня начинается со столбца "F".
 
Код
Int((ActiveCell.Column + 12) * Rnd) + 1
Замените это выражение на номера столбцов, в которых должно стоять "Да"
 
Чтобы вставлять нужное значение в несмежные диапазоны (ячейка - это тоже диапазон), можно через Union:
Код
Sub t()
    Union(ActiveCell.Offset(0, 4), ActiveCell.Offset(0, 7)) = "yes"
    ActiveCell.Offset(1, 0).Activate
End Sub
Кому решение нужно - тот пример и рисует.
 
Маргарита, я так и сделал, заменил строчку
Код
Int((ActiveCell.Column + 12) * Rnd) + 1
строкой из кода Пытливого
Код
Union(ActiveCell.Offset(0, 4), ActiveCell.Offset(0, 7)) = "yes"
и все заработало как часы )

Маргарита, Пытливый, спасибо вам большое!
Страницы: 1
Читают тему (гостей: 1)