Страницы: 1
RSS
динамический диапазон с помощью vba, Нужно копировать формулу на столько строк, сколько есть в сводке
 
День добрый! Помогите сделать такую штуку, в vba я полный нуп или хотя бы, подскажите...
В файле 2 листа. На 1 листе всегда в 6ой строке прописаны разные формулы в диапазоне A6:S6. Нужно, чтобы эти формулы копировались на столько строк вниз, сколько строк в сводной таблице на 2м листе.

Как прописать это?
Я только догадываюсь, что сначала нужно объявить эту строку Dim A6:S6 As Range
For each range далее прописывается формула смещения для создания динамического диапазона =offset(a6;0;19;count(A6:A10000);1))
 
Какой-то странный файл. У меня открылось всего с двумя записями. Что с ними делать?
С уважением,
Федор/Все_просто
 
Прошу прощения, что то наглупил  
 
kornilcdima, не рунописец но заглядываю в темы к ним иногда для расширения кругозора, и смотря вашу тему возник вопрос, а смысл этого действа создавать сводную таблицу а потом с этой сводной формулами тянуть данные на другой лист, мож эту сводную создать на другом листе или в чем то подвох
Лень двигатель прогресса, доказано!!!
 
Цитата
Сергей написал: а смысл этого действа создавать сводную таблицу
Поддерживаю вопрос. :)
Код
Sub VVV()
Dim LRow As Long
LRow = Sheets("Сводка").Cells(Rows.Count, 7).End(xlUp).Row - 5
With Sheets("динамич диап")
    .Range("A1:C1").AutoFill Destination:=.Range("A1:C" & LRow), Type:=xlFillDefault
End With
End Sub
 
Это просто абстрактный пример, чтобы я смог понять принцип как это сделать. У меня на одном листе сводка, а на втором в зависимости от названий в сводке выполняются разные формулы, которые прописаны только в верхней строке. Почему только в верхней - потому что иначе файл будет весить очень много.
Своими силами я могу прописать, чтобы копировалось на 1000 строк например.
Сначала в 1000 строк, кроме 1ой прописываю ="", а затем то, что ниже
Код
Range("A6").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Range(Selection, Selection.End(xlDown)).Select
    ActiveSheet.Paste

Определять количество строк мне нужно, чтобы файл работал побыстрее. Вдруг нужно только 50 строк формул, а не 1000, а он ведь накопирует все 1000 и будет вести пересчет.

Я бы скинул файл, но стоит ограничение 100кб, могу в личку.
Изменено: kornilcdima - 11.03.2015 09:52:11
 
LRow = Sheets("Сводка").Cells(Rows.Count, 7).End(xlUp).Row - 5
эта строчка определяет к-во строк
-5  это отнимаем 4 строчки ИТОГО и первую строчку Сумм...., остается только нужное к-во строк.
П.С. код оформляйте тегом (кнопка <...>) - исправьте п-ста.
Изменено: V - 11.03.2015 15:01:26
 
Цитата
kornilcdima написал: Я бы скинул файл, но стоит ограничение 100кб, могу в личку.
а если удалить пару строчек (оставить штук 10) да упаковать?
Изменено: V - 11.03.2015 15:01:37
Страницы: 1
Наверх