powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Автозаполнение таблицы переменной ширины
6 сообщений из 6, страница 1 из 1
Автозаполнение таблицы переменной ширины
    #36676708
LeCrunch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется шаблон xlt, содержащий таблицу из шапки и одной образцовой строки.
После его открытия макрос запрашивает требуемое кол-во строк и автозаполняет их.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Public Sub Auto_Open()
    Dim oBook, oSheet As Object
    Dim tbl, SourceRange, FillRange As Range
    Dim NN As Integer  'кол-во

    Set oBook = ActiveWorkbook
    Set oSheet = oBook.Worksheets( 1 )
    
    NN = Application.InputBox _
        (prompt:="Количество строк?", Type:= 1 )
    If NN = False Then Exit Sub

Application.ScreenUpdating = False
    
    Set SourceRange = oSheet.Range("A2:BK2")
    Set FillRange = oSheet.Range("A2:BK" & NN +  1 ) ' шапка
    
    SourceRange.AutoFill Destination:=FillRange, Type:=xlFillDefault

Application.ScreenUpdating = True

End Sub

Однако в будущем таблица будет увеличиваться, поэтому вопрос - как сделать универсальным указание диапазона для образцовой строки - SourceRange и FillRange; без указания абсолютных координат ячеек типа "A2:BK2"?
...
Рейтинг: 0 / 0
Автозаполнение таблицы переменной ширины
    #36676933
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если правильно понял, то увеличиваться будет в количестве столбцов, строки и так уже вводятся. Тогда можно так
Код: plaintext
1.
2.
3.
4.
5.
6.
    CN = Application.InputBox _
        (prompt:="Количество столбцов?", Default:= 63 , Type:= 1 )
    If CN = False Then Exit Sub
...
    Set SourceRange = oSheet.Range("A2").Resize( 1 , CN)
    Set FillRange = oSheet.Range("A2").Resize(NN, CN) ' шапка
...
Рейтинг: 0 / 0
Автозаполнение таблицы переменной ширины
    #36679295
LeCrunch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Объяснил наверное нечётко - кол-во столбцов будет увеличиваться не макросом, а просто с течением времени.
Нужно предусмотреть это в коде макроса, чтобы не переписывать его всякий раз.

Пока решил так:
Код: plaintext
1.
2.
3.
4.
...
    Set SourceRange = oSheet.Range("A2").EntireRow
    Set FillRange = oSheet.Range("A2").Resize(NN, SourceRange.Columns.Count)
...
...
Рейтинг: 0 / 0
Автозаполнение таблицы переменной ширины
    #36679739
nilem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeCrunch,

Так попробуйте:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Option Explicit

Public Sub Auto_Open()
    Dim oBook As Workbook, oSheet As Worksheet
    Dim tbl As Range, SourceRange As Range, FillRange As Range
    Dim NN As Integer  'кол-во

    Set oBook = ActiveWorkbook
    Set oSheet = oBook.Worksheets( 1 )

    NN = Application.InputBox(prompt:="Количество строк?", Type:= 1 )
    If NN = False Then Exit Sub

Application.ScreenUpdating = False

With oSheet
    Set SourceRange = Range([A2], .Cells( 2 , .Cells( 2 , Columns.Count).End(xlToLeft).Column))
    Set FillRange = Range([A2], .Cells(NN +  1 , .Cells( 2 , Columns.Count).End(xlToLeft).Column))
End With

SourceRange.AutoFill Destination:=FillRange, Type:=xlFillDefault

Application.ScreenUpdating = True
End Sub
...
Рейтинг: 0 / 0
Автозаполнение таблицы переменной ширины
    #36679750
nilem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nilem,

Просмотрел строчку, вот так надо
If NN = 0 Then Exit Sub
...
Рейтинг: 0 / 0
Автозаполнение таблицы переменной ширины
    #36679950
LeCrunch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nilem,

Спасибо, но выделение влево не срабатывают в шаблоне таблицы с пустыми ячейками.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Автозаполнение таблицы переменной ширины
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]