Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2012, 15:19   #1
yevgeniy.demidov
 
Регистрация: 03.09.2012
Сообщений: 4
По умолчанию Макрос: заполнение таблицы данными из другой таблицы с автоматическим добавлением строк

Добрый день. Прошу помощи в написании макроса.
Формулировка задачи на основе вложенного файла:
Копирование данных из из ячеек таблицы на вкладке "Спецификация" в таблицу на вкладке "ТЭО" с автоматическим добавлением строк из таблицы "Спецификация", но только тех строк, которые имеют стоимость.
Вложения
Тип файла: zip пример.zip (22.4 Кб, 93 просмотров)
yevgeniy.demidov вне форума Ответить с цитированием
Старый 05.09.2012, 15:17   #2
yevgeniy.demidov
 
Регистрация: 03.09.2012
Сообщений: 4
По умолчанию

Нашел, как посчитать количество строк в таблице:
Range("Спецификация").Rows.Count
"Спецификация" - название таблицы.
Дело за малым: нужна функция, которая вставит нужное количество строк.
yevgeniy.demidov вне форума Ответить с цитированием
Старый 05.09.2012, 15:54   #3
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Код:
Sub ff()
  Intersect(Range("C:H,O:R"), _
    Union([Q3:Q100].SpecialCells(xlCellTypeConstants).EntireRow, _
      [Q3:Q100].SpecialCells(xlCellTypeFormulas).EntireRow)).Copy _
        Sheets("ТЭО").Range("A" & Sheets("ТЭО").Rows.Count).End(xlUp).Offset(1)  
End Sub
вот такое интересует?
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 06.09.2012, 13:15   #4
yevgeniy.demidov
 
Регистрация: 03.09.2012
Сообщений: 4
По умолчанию

DiemonStar, спасибо. Решение соответствует поставленным условиям.
Правда, в ходе эксплуатации возникли другие условия:
Ячейки таблицы "ТЭО" содержат ссылки на ячейки в таблице "Спецификация". Все, что нужно теперь - это протянуть таблицу "ТЭО" вниз так, чтобы количество строк было равное.
Вот так выглядит макрос при протяжке таблицы:
Sub Resize()
'
' Resize Макрос
' Добавление строк в таблицу протягиванием.
'

'
ActiveSheet.ListObjects("ТЭО").Resi ze Range("$A$1:$J$22")
Range("J2").Select
End Sub

Как видно, задан фиксированный диапазон протяжки ("$A$1:$J$22"). Но т.к. таблица "Спецификация" каждый раз будет иметь разное количество строк, требуется сослаться на количество строк в этой таблице, за исключением строки с заголовками и строки итогов. Как это сделать?
Вложения
Тип файла: zip пример ver. 2.zip (30.5 Кб, 74 просмотров)
yevgeniy.demidov вне форума Ответить с цитированием
Старый 06.09.2012, 13:57   #5
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Код:
ActiveSheet.ListObjects("ТЭО").Resi ze Range("$A$1:$J$"& Sheets("Спецификация").[A1].End(xlUp).Row - 2)
можно пробовать что-то типа такого...
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 06.09.2012, 15:02   #6
yevgeniy.demidov
 
Регистрация: 03.09.2012
Сообщений: 4
По умолчанию

Выдает сообщение об ошибке:
Код:
Run-time error '1004':
Method 'Range' of object '_Global' failed
yevgeniy.demidov вне форума Ответить с цитированием
Старый 06.09.2012, 15:27   #7
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Код:
 ActiveSheet.ListObjects("ТЭО").Resize _
  Range("$A$1:$J$" & Sheets("Спецификация").Range("A" & Sheets("Спецификация").Rows.Count).End(xlUp).Row - 1)
вот так работает...
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение таблицы данными Ташка Microsoft Office Excel 1 13.05.2011 11:23
Заполнение таблицы данными по условию JVG Microsoft Office Excel 2 23.03.2011 18:13
заполнение таблицы данными smira Microsoft Office Excel 9 31.01.2011 11:21
Заполнение таблицы excel данными из word Raig Microsoft Office Excel 3 10.08.2010 14:29
Заполнение одной таблицы данными из другой melok_s Microsoft Office Excel 7 20.11.2008 03:56