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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2012, 12:26   #1
Bocul
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 38
По умолчанию Создать строки в новых книгах

Подскажите пожалуйста:

Есть документ excel.
В нем 300 книг (т.е. Лист1 Лист2 - Лист300)

Требуется макрос - который сможет зайти в каждую книгу и создать 3 пустые строчки сверху (именно создать, а не очистить имеющиеся), и в ячейки прописать нужные данные.

Есть вот такие книги (Листы)

Снимок_1.JPG

Требуется автоматом на всех сделать вот так

Снимок_2.JPG
Bocul вне форума Ответить с цитированием
Старый 23.06.2012, 12:49   #2
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

вот
Код:
Sub ert()
Dim wsh As Worksheet
For Each wsh In ThisWorkbook.Worksheets
    With wsh
        .Rows("1:3").Insert: .Range("A1:C1").Value = [{"Название","кол-во","цвет"}]
        .Range("B2").FormulaR1C1 = "=SUM(R[2]C:R" & .Cells(Rows.Count, 2).End(xlUp).Row & "C)"
    End With
Next wsh
End Sub
nilem вне форума Ответить с цитированием
Старый 23.06.2012, 12:51   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Макрорекордер в помощь (и немного доработать полученное):

Код:
Sub Макрос1()

    Dim sh As Worksheet
    For Each sh In Worksheets
        With sh
            .Rows("1:3").Insert Shift:=xlDown
            .Range("A1") = "Название"
            .Range("B1") = "кол-во"
            .Range("C1") = "цвет"
            With .Range("A1:C1").Font
                .Color = -16776961
                .TintAndShade = 0
            End With
            .Range("B2") = "формула суммы"
        End With
    Next
End Sub
Ну "формула суммы" конечно требует коррекции, ну какой пример...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 23.06.2012, 13:07   #4
Bocul
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 38
По умолчанию

Спасибо Вам за ваше потраченное время на меня!!

Подскажите еще:

Код:
Sub Макрос1()

    Dim sh As Worksheet
    For Each sh In Worksheets
        With sh
            .Rows("1:3").Insert Shift:=xlDown
            .Range("A1") = "Название"
            .Range("B1") = "кол-во"
            .Range("C1") = "цвет"
            With .Range("A1:C1").Font
                .Color = -16776961
                .TintAndShade = 0
            End With
            .Range("A2") = "=ВПР("название";A1:B20;2;0)"
                             
        End With
    Next
End Sub


Не срабатывает формула
Код:
.Range("A2") = "=ВПР("название";A1:B20;2;0)"
Ругается на русский язык - как обойти это?


Просьба модератора исправить название темы на «Макрос для создание строк с данными в книгах (листах)»

Последний раз редактировалось Bocul; 23.06.2012 в 13:11.
Bocul вне форума Ответить с цитированием
Старый 23.06.2012, 13:25   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

У nilem'а пропустили одно слово:

.Range("B2").FormulaR1C1 =

Далее - если пишите ВПР(), тогда пишите FormulaLocal, но лучше

Код:
.Range("A2").Formula = "=VLOOKUP(""название"",A1:B20,2,0)"

т.е два варианта:
.Range("A2").Formula = "=VLOOKUP(""название"",A1:B20,2,0)"
.Range("A3").FormulaLocal = "=ВПР(""название"";A1:B20;2;0)"
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 23.06.2012 в 13:33.
Hugo121 вне форума Ответить с цитированием
Старый 23.06.2012, 13:31   #6
Bocul
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 38
По умолчанию

Спасибо Вам Hugo121, nilem!!!

Все получилось, так как я хотел!!!!!

Последний раз редактировалось Bocul; 23.06.2012 в 13:37.
Bocul вне форума Ответить с цитированием
Старый 23.06.2012, 13:42   #7
Bocul
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 38
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
У nilem'а пропустили одно слово:

.Range("B2").FormulaR1C1 =

Далее - если пишите ВПР(), тогда пишите FormulaLocal, но лучше

Код:
.Range("A2").Formula = "=VLOOKUP(""название"",A1:B20,2,0)"

т.е два варианта:
.Range("A2").Formula = "=VLOOKUP(""название"",A1:B20,2,0)"
.Range("A3").FormulaLocal = "=ВПР(""название"";A1:B20;2;0)"
Подскажите пожалуйста, как сделать так, что бы был еще один столбец и в нем было название листа.

к пример столбец с название Страница:
и далее будет Лист1

на Листе2 - будет Написано в этом столбце Лист2 и так до 300 или более
Bocul вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано целое число К и строковый файл. Создать 2 новых файла по условию Lulika Паскаль, Turbo Pascal, PascalABC.NET 2 14.04.2012 18:35
Из текстового файла,содержащего русские и латинские слова создать 2 новых файла: 1-й-русские,2-й - латинские (паскаль для девушки) beygul Помощь студентам 5 28.03.2012 14:26
Создать типизированный файл catalog.dat, содержащий сведения о книгах Хочу все знать! Помощь студентам 3 17.05.2011 01:01
О книгах Halifath Помощь студентам 3 11.02.2010 08:00
Создать приложение для занесения и выборки инфор-мации о книгах библиотеки PRIVIDENIE18 Общие вопросы Delphi 4 02.04.2009 13:47