SAS888
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору DANYA198 Предлагаю такой вариант. Макрос пронормирует все записи в столбце "A" и добавит недостающие инициалы в том сдучае, если найдется такая же фамилия с полными инициалами. В столбце "B", напротив исправленной ячейки будет выведено исходное значение исправленной записи. Это и будет меткой для визуального контроля. Добавлено: Ogeris Предлагаю такой вариант: Пишем подпрограмму, в которую передаем 3 параметра: 1 - Начальная ячейка 2 - Конечная строка (столбец) 3 - Идентификатор заполнения. Если "Строка" - то по строке. Если "Столбец" - то по столбцу. Подпрограмма не использует циклов. Посмотрите пример.: Код: Sub Пример1() Подпрограмма [D10], 1000, "Строка" End Sub Sub Пример2() Подпрограмма [D10], 100, "Столбец" End Sub Sub Подпрограмма(Ячейка As Range, Предел As Long, Идентификатор As String) Dim x As Range, y As Range, i As Long, j As Long: Application.ScreenUpdating = False i = Ячейка.Row: j = Ячейка.Column: On Error Resume Next Select Case Идентификатор Case "Строка" Set x = Range(Ячейка.Offset(, 1), Cells(i, Предел)): Set y = x.SpecialCells(xlCellTypeBlanks) y.FormulaR1C1 = "=RC[-1]": x.Value = x.Value Case "Столбец" Set x = Range(Ячейка.Offset(1), Cells(Предел, j)): Set y = x.SpecialCells(xlCellTypeBlanks) y.FormulaR1C1 = "=R[-1]C": x.Value = x.Value End Select End Sub | По-моему, все очевидно. Запустив макрос "Пример1", будет осуществлено заполнение от указанной ячейки до указанного предела по строке. Соответственно для "Пример2" - по столбцу. По хорошему, нужно добавить проверку: не превышает ли позиция начальной ячейки (номер строки или номер столбца) указанного предела для заполнения. On Error Resume Next - это на случай, если в указанном диапазоне не нашлось ни одной пустой ячейки. |