Как проще всего сделать, чтоб минимум манипуляций

Программирование на Visual Basic for Applications
claus
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 16.10.2008 (Чт) 15:36

Как проще всего сделать, чтоб минимум манипуляций

Сообщение claus » 24.10.2008 (Пт) 17:32

програмно добавить строку и в ней пронумеровать непустые ячейки, типа вот так:

Код: Выделить всё
Rows("1:1").Select
    Selection.Insert Shift:=xlDown
    ActiveCell.FormulaR1C1 = "1"
    Range("A1").Select
    Selection.AutoFill Destination:=Range("A1:AB1"), Type:=xlFillSeries

- только количество столбцев будет всегда разным, и этот пример не канает.

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Re: Как проще всего сделать, чтоб минимум манипуляций

Сообщение KL » 24.10.2008 (Пт) 19:32

claus писал(а):програмно добавить строку и в ней пронумеровать непустые ячейки, типа вот так:

Код: Выделить всё
Rows("1:1").Select
    Selection.Insert Shift:=xlDown
    ActiveCell.FormulaR1C1 = "1"
    Range("A1").Select
    Selection.AutoFill Destination:=Range("A1:AB1"), Type:=xlFillSeries

- только количество столбцев будет всегда разным, и этот пример не канает.

Задача не ясна. Повесь пример с начальной ситуацией и результатом.
Привет,
KL

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: Как проще всего сделать, чтоб минимум манипуляций

Сообщение Alec » 25.10.2008 (Сб) 2:53

Как-то так...
Код: Выделить всё
  NCol = 20'количество столбцов
  Rows(1).Insert xlDown
  Cells(1, 1) = 1
  Cells(1, 1).AutoFill Range(Cells(1, 1), Cells(1, NCol)), xlFillSeries

Записываем макрос и убираем по возможности Select, Selection, ActiveCell и тому подобное
Иногда лучше вовремя остановиться...
И начать заново!

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Re: Как проще всего сделать, чтоб минимум манипуляций

Сообщение KL » 25.10.2008 (Сб) 19:10

Еще так:

Код: Выделить всё
Sub test()
    ncol = 20
    Rows(1).EntireRow.Insert xlDown
    With Rows(1).Resize(, ncol): .Value = Evaluate("COLUMN(" & .Address & ")"): End With
End Sub
Привет,
KL

claus
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 16.10.2008 (Чт) 15:36

Re: Как проще всего сделать, чтоб минимум манипуляций

Сообщение claus » 28.10.2008 (Вт) 10:41

Не, ну вобщем-то и так можно, только если "ncol = i", а "i = количеству столбцев". Тогда вопрос звучит по другому - как получить колличество непустых колонок?


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 105

    TopList