Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Автозаполнения ячеек по диагонали, алгоритм для автозаполнения
 
Нужен алгоритм для авто заполнения ячеек по диагонали в Excel, Ни могли бы вы мне с этим помочь, проштудировал весь интернет .
 
Заполняет слева-сверху вправо-вниз
UPD немного переделал (возможность вводить диапазон, число, которым будут заполняться ячейки, простейшую прогрессию)
Код
Sub Diagonal()
Dim Rng As Range, Fill, aFill
Dim isPlus, isMinus As Boolean
On Error Resume Next
Set Rng = Application.InputBox("Задайте диапазон", "Ввод данных", Type:=8)
If Rng Is Nothing Then Exit Sub
Fill = InputBox("Введите число (при вводе числа со знаком + или - будет введена прогрессия с шагом 1")
If Fill = "" Then Exit Sub
If InStr(Fill, "+") <> 0 Then
    isPlus = True
    Fill = Replace(Fill, "+", "")
    Else:
    If InStr(Fill, "-") <> 0 Then
    isMinus = True
    Fill = Replace(Fill, "", "")
    End If: End If
aFill = Val(Fill)
With Rng
    If .Columns.Count <> .Rows.Count Then
    If .Columns.Count > .Rows.Count Then Rng.Resize(.Rows.Count, .Rows.Count).Select Else _
    Rng.Resize(.Columns.Count, .Columns.Count).Activate
    End If
End With
With Rng
For I = 1 To .Columns.Count
    If isPlus Then .Cells(I, I) = aFill + 1 * (I - 1) _
    Else If isMinus Then .Cells(I, I) = aFill - 1 * (I - 1) Else .Cells(I, I) = aFill
Next I
.Cells(.Row, .Column).Select
End With
End Sub
Изменено: МВТ - 9 Апр 2015 21:14:10
 
Цитата
fokys написал: проштудировал весь интернет .
Во как! )
 
Cпасибо за помощь))
 
Добрый день!
Решил поднять эту тему, а не начинать новую, т.к. задача очень близка по сути.
Код, который представлен в теме, позволяет вставлять числа по диагонали в диапазон данных. Можно ли его как-то видоизменить, чтобы он позволял вставлять формулу, а не числа по диагонали?
 
Разумеется, правильное решение заключается в том, чтобы исправить сам макрос, но для ускорения процесса предлагаю:
заполнить нужные ячейки каким-нибудь одинаковым числом с помощью макроса,
а затем при помощи стандартного инструмента MS Excel "Найти и заменить" поменять это число на нужную формулу...
Страницы: 1
Читают тему (гостей: 1)