Профессиональные приемы работы в Microsoft Excel
19 Май 2012, 11:50:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Из правил форума: Тема должна отражать суть вопроса, топики типа "help please" будут удаляться!
   Начало   ПРАВИЛА ФОРУМА ЧаВо (FAQ) СТАТЬИ Помощь Календарь Войти Регистрация RSS  
Страниц: [1]
  Печать  
Автор Тема: Растянуть формулу, но при условии  (Прочитано 320 раз)
Bomont
Пользователь
**

Уважение: +0/-0
Offline Offline

Сообщений: 76


Просмотр профиля
« : 06 Февраль 2012, 16:49:21 »

Добрый день, господа!

Есть такой код:

Set SourceRange = Worksheets("Исходные").Range("L1:DT1")
Set fillRange = Worksheets("Исходные").Range("L1:DT" & k + r2 - r1)
SourceRange.AutoFill Destination:=fillRange

И вот что интересное получилось, если среди столбцов от L до DT есть пустые (в первой строчке нет формулы), то Excel протягивает и их - и при сохранении файл значительно увеличивается, как будто эти столбцы не пустые!

Вопрос, как запустить макрос с растяжением формул в столбцах от L до DT, но лишь в тех из них, где в первой строчке есть собственно формула, которую можно растянуть? Т.е. как я понимаю надо перебирать каждый столбец и если первая строчка содержит формулу или значение, то растянуть и далее так до столбца DT.

Помогите, заранее спасибо!
« Последнее редактирование: 06 Февраль 2012, 16:55:42 от Bomont » Записан
Bomont
Пользователь
**

Уважение: +0/-0
Offline Offline

Сообщений: 76


Просмотр профиля
« Ответ #1 : 06 Февраль 2012, 17:32:43 »

Прикрепил для примера файл.

Необходимо:
Протянуть все столбцы от L до DT с первой строки до 1000, но только те столбцы где в первых строчках есть формулы
Записан
Bomont
Пользователь
**

Уважение: +0/-0
Offline Offline

Сообщений: 76


Просмотр профиля
« Ответ #2 : 06 Февраль 2012, 18:01:31 »

Спасибо за ответ.
Наверное неудачный пример выложил. В моем файле все формулы зависят от предыдущих. В вашем примере, как я понял вы просто скопировали формулы из первой. А их необходимо именно растянуть.

В том то и дело, что заметил разницу (в моем файле были иные формулы  в первых строчках, а количество строк более 100 000). Размер файла значительно отличался от:
1. если вручную протянуть только те столбцы где в первой строчке есть формула
2. если протянуть макросом сразу все столбцы
« Последнее редактирование: 06 Февраль 2012, 18:09:46 от Bomont » Записан
Bomont
Пользователь
**

Уважение: +0/-0
Offline Offline

Сообщений: 76


Просмотр профиля
« Ответ #3 : 07 Февраль 2012, 10:16:36 »

Спасибо Вам за внимание! Вы уже помогли! На основе Вашего когда я состряпал свой:

'рястягиваем формулы в столбцах с 1 по 150  и с 10 строки по 1000-ю, но при условии, что есть формулы в 10 строке
y = 1
    While y <= 150
        If Workbooks(bn_).Worksheets("Исходные").Range(Cells(10, y), Cells(10, y)).HasFormula Then
            Workbooks(bn_).Worksheets("Исходные").Range(Cells(10, y), Cells(1000, y)) =  Workbooks(bn_).Worksheets("Исходные").Range(Cells(10, y), Cells(10, y)).Formula
        End If
        y = y + 1
    Wend
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

   

Темы без ответов
Дата Просмотров Ответов
17.05.2012 21:51 Графика в Excel VBA 57 0
17.05.2012 09:07 Решение задачи линейного программирования 51 0
03.05.2012 16:56 Выгрузка данных из Excel в XML (vba макрос?) 137 0
24.04.2012 11:39 Сортировка данных в EXCEL в расшаренном файле 299 0
18.04.2012 15:43 запрет на окрытие файла определенным пользователем 175 0
09.04.2012 12:11 Макрос импорта из csv-файлов в Excel 2010 работает, а в Excel 20003-07 нет. 171 0
06.04.2012 15:34 Новые статьи на сайте 502 0
06.04.2012 12:05 Использование нескольких файлов Excel для расчета 457 0
04.04.2012 10:47 Связанные ComboBox Activex 140 0
28.03.2012 17:52 Снятие защиты книги Excel с помощью макроса и без 327 0

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines | Sitemap Valid XHTML 1.0! Valid CSS!