Копирование данных в excel из одной книги в другую
Здравствуйте, подскажи пожалуйста, возможно ли технически прописать формулу для того, чтоб данные их одной Книги Excel -далее Книга 1, автоматически переносились в другую Таблицу другой Книги -Далее Книга 2
Сложность в том, автоматически нужно переносить не строку,столбец, а отдельные ячейки.
Т.е. ячейка Е19 Книги 1 должна автоматически вставать в ячейку С11 Книги 2.
ячейка К19 Книги 1 должна автоматически вставать в ячейку С12 Книги 2.
ячейка F19 Книги 1 должна автоматически вставать в ячейку D11 Книги 2.
ячейка I19 Книги 1 должна автоматически вставать в ячейку H11 Книги 2.
Поскажите, возможно ли такое. В ручную трудно все это ежемесячно переводить. Может это нужно сделать сводную таблицу. Я вообще новичок и в понятиях путаюсь.
Спасибо.
Здравствуйте, подскажи пожалуйста, возможно ли технически прописать формулу для того, чтоб данные их одной Книги Excel -далее Книга 1, автоматически переносились в другую Таблицу другой Книги -Далее Книга 2
Сложность в том, автоматически нужно переносить не строку,столбец, а отдельные ячейки.
Т.е. ячейка Е19 Книги 1 должна автоматически вставать в ячейку С11 Книги 2.
ячейка К19 Книги 1 должна автоматически вставать в ячейку С12 Книги 2.
ячейка F19 Книги 1 должна автоматически вставать в ячейку D11 Книги 2.
ячейка I19 Книги 1 должна автоматически вставать в ячейку H11 Книги 2.
Поскажите, возможно ли такое. В ручную трудно все это ежемесячно переводить. Может это нужно сделать сводную таблицу. Я вообще новичок и в понятиях путаюсь.
Спасибо. Naivnaya
Поскажите, возможно ли такое. В ручную трудно все это ежемесячно переводить. Может это нужно сделать сводную таблицу. Я вообще новичок и в понятиях путаюсь.
Спасибо. Автор - Naivnaya
Дата добавления - 30.03.2011 в 09:40
Здравствуйте.
Просто вставить значения "приравниванием" не годится?
Т.е. например для
"ячейка Е19 Книги 1 должна автоматически вставать в ячейку С11 Книги 2" делаем так:
в C11 книги2 вводим " http://s5.ucoz.net/sm/1/smile.jpg" border="0" align="absmiddle" alt="smile">
Здравствуйте.
Просто вставить значения "приравниванием" не годится?
Т.е. например для
"ячейка Е19 Книги 1 должна автоматически вставать в ячейку С11 Книги 2" делаем так:
в C11 книги2 вводим " http://s5.ucoz.net/sm/1/smile.jpg" border="0" align="absmiddle" alt="smile"> Hugo
Может еще так будет понятней: из Января Книги1 данные должны вставляться в Январь Книги2 , из февраля в февраль и т.д. Т.е при копировании листов формулы то не меняются.
Может еще так будет понятней: из Января Книги1 данные должны вставляться в Январь Книги2 , из февраля в февраль и т.д. Т.е при копировании листов формулы то не меняются.
Может еще так будет понятней: из Января Книги1 данные должны вставляться в Январь Книги2 , из февраля в февраль и т.д. Т.е при копировании листов формулы то не меняются.
Наверно я что-то все таки неправильно думаю, то что я хочу в экселе не сделаешь, это наверно програмку надо чтоб она автоматически все значения подставляла из Книги2 в книгу 2
Наверно я что-то все таки неправильно думаю, то что я хочу в экселе не сделаешь, это наверно програмку надо чтоб она автоматически все значения подставляла из Книги2 в книгу 2 Naivnaya
Т.к. ячейки у Вас разбросаны в какой-то мере хаотично, то прописывать адреса придётся индивидуально и в макросе.
Другое дело что в макросе можно задать цикл по листам книг и копирование значений заранее прописанных в коде ячеек из одного листа в другой.
Но в целом весь механизм практической реализации задачи мне не совсем ясен - много тонкостей.
Может быть лучше сделать так - наладили этими формулами один лист. При появлении нового месяца скопировали этот лист, затем через Ctrl+H заменили в формулах ссылку на прежний лист ссылкой на новый лист(месяц).
Т.к. ячейки у Вас разбросаны в какой-то мере хаотично, то прописывать адреса придётся индивидуально и в макросе.
Другое дело что в макросе можно задать цикл по листам книг и копирование значений заранее прописанных в коде ячеек из одного листа в другой.
Но в целом весь механизм практической реализации задачи мне не совсем ясен - много тонкостей.
Может быть лучше сделать так - наладили этими формулами один лист. При появлении нового месяца скопировали этот лист, затем через Ctrl+H заменили в формулах ссылку на прежний лист ссылкой на новый лист(месяц). Hugo
Можно ли на этом же листе в конце или внизу таблицы сделать сводную таблицу из данных
1 столбец красные суммы
2 столбец желтые суммы
3 столбец синие суммы
4 столбец зеленые суммы
Вопрос: если строки добавлять (Строк может быть огромное количество)в табл.1 все формулы полетят в табл.2?
Можно ли на этом же листе в конце или внизу таблицы сделать сводную таблицу из данных
1 столбец красные суммы
2 столбец желтые суммы
3 столбец синие суммы
4 столбец зеленые суммы
Вопрос: если строки добавлять (Строк может быть огромное количество)в табл.1 все формулы полетят в табл.2? Naivnaya
Можно ли на этом же листе в конце или внизу таблицы сделать сводную таблицу из данных
1 столбец красные суммы
2 столбец желтые суммы
3 столбец синие суммы
4 столбец зеленые суммы
Вопрос: если строки добавлять (Строк может быть огромное количество)в табл.1 все формулы полетят в табл.2? Автор - Naivnaya
Дата добавления - 30.03.2011 в 12:38
Да, спасибо большое. Я понимаю что в моем случае слишком много тонкостей.
дело просто в том, что данные 2 книги создаются на 1 поставщика, а их у меня 100, и поэтому и встает такой вопрос относительно хоть какой то совместимости двух книг по каждому поставщику. Иначе приходиться копировать все данные из 1 книги в другую, ну сами понимаете, очень, очень, очень много раз умноженных на 100 поставщиков :-)))
Я вообще задумываюсь над вопросом создания для этого дела хоть какой то програмки, но как, к кому и ск-ко это стоит я незнаю. А облегчить свою работу хочется :-)
Да, спасибо большое. Я понимаю что в моем случае слишком много тонкостей.
дело просто в том, что данные 2 книги создаются на 1 поставщика, а их у меня 100, и поэтому и встает такой вопрос относительно хоть какой то совместимости двух книг по каждому поставщику. Иначе приходиться копировать все данные из 1 книги в другую, ну сами понимаете, очень, очень, очень много раз умноженных на 100 поставщиков :-)))
Я вообще задумываюсь над вопросом создания для этого дела хоть какой то програмки, но как, к кому и ск-ко это стоит я незнаю. А облегчить свою работу хочется :-) Naivnaya
Тогда зачем Вы её усложняете такой безобразной организацией данных?!
Ведь все Ваши задачи можно легко решить, если привести их (данные) в порядок.
Тогда зачем Вы её усложняете такой безобразной организацией данных?!
Ведь все Ваши задачи можно легко решить, если привести их (данные) в порядок. Serge_007
Тогда зачем Вы её усложняете такой безобразной организацией данных?!
Ведь все Ваши задачи можно легко решить, если привести их (данные) в порядок. Автор - Serge_007
Дата добавления - 30.03.2011 в 21:42
необходимо перенести данные из 36 таблиц в 1ну, все они идентичные, единственно каждая из 36 таблиц имеет записи только в определенных строках(ячейках)
необходимо по всей видимости макросом перенести значения из каждой из 36 таблиц в 1ну идентичную, где все отобразится разом.
есть ли соответствующая разработка?
необходимо перенести данные из 36 таблиц в 1ну, все они идентичные, единственно каждая из 36 таблиц имеет записи только в определенных строках(ячейках)
необходимо по всей видимости макросом перенести значения из каждой из 36 таблиц в 1ну идентичную, где все отобразится разом.
есть ли соответствующая разработка? Гость
необходимо перенести данные из 36 таблиц в 1ну, все они идентичные, единственно каждая из 36 таблиц имеет записи только в определенных строках(ячейках)
необходимо по всей видимости макросом перенести значения из каждой из 36 таблиц в 1ну идентичную, где все отобразится разом.
есть ли соответствующая разработка? Автор - Гость
Дата добавления - 15.04.2011 в 10:25
Ну и зачем тогда его в ЭТОЙ теме задавать?!
Читайте правила (особенно п.4.) и создавайте свою. Serge_007
Ну и зачем тогда его в ЭТОЙ теме задавать?!
Читайте правила (особенно п.4.) и создавайте свою. Автор - Serge_007
Дата добавления - 15.04.2011 в 11:40
Добрый времени суток, у меня такой вопрос:
есть три книги
1.Общая в ней находяться все данные
2.Положительный ответ
3.Отрицательный ответ
Мне надо формула при которой при положительном ответе все строка переноситься во вторую книгу, при отрицательном в 3, при чем в 1 книги что б ничего не оставалось? кто может что подсказать
Добрый времени суток, у меня такой вопрос:
есть три книги
1.Общая в ней находяться все данные
2.Положительный ответ
3.Отрицательный ответ
Мне надо формула при которой при положительном ответе все строка переноситься во вторую книгу, при отрицательном в 3, при чем в 1 книги что б ничего не оставалось? кто может что подсказать Гость
Я не волшебник. Я только учусь
Макросами. Ждите когда макросописцы прочтут Вашу тему Автор - light26
Дата добавления - 29.12.2011 в 19:04
Hugo, ну не хочет посетитель регистрироваться, а без этого выложить файл можно только через файлообменник, чего этот пльзователь, ИМХО, делать не будет
Hugo, ну не хочет посетитель регистрироваться, а без этого выложить файл можно только через файлообменник, чего этот пльзователь, ИМХО, делать не будет light26
Hugo, я так мыслю, что ему нужно что-то вроде этого. Только доработать нужно немного. Или много
Sub Перенос()
'
' Перенос Макрос
'
'
Range("A1").Select
Selection.Cut
Sheets("Да").Select
ActiveSheet.Paste
Columns("A:A").EntireColumn.AutoFit
Sheets("Данные").Select
Selection.Delete Shift:=xlUp
Range("B1").Select
Selection.ClearContents
Range("A1").Select
Selection.Cut
Sheets("Нет").Select
ActiveSheet.Paste
Columns("A:A").EntireColumn.AutoFit
Sheets("Данные").Select
Selection.Delete Shift:=xlUp
Range("B1").Select
Selection.ClearContents
End Sub
Hugo, я так мыслю, что ему нужно что-то вроде этого. Только доработать нужно немного. Или много
Sub Перенос()
'
' Перенос Макрос
'
'
Range("A1").Select
Selection.Cut
Sheets("Да").Select
ActiveSheet.Paste
Columns("A:A").EntireColumn.AutoFit
Sheets("Данные").Select
Selection.Delete Shift:=xlUp
Range("B1").Select
Selection.ClearContents
Range("A1").Select
Selection.Cut
Sheets("Нет").Select
ActiveSheet.Paste
Columns("A:A").EntireColumn.AutoFit
Sheets("Данные").Select
Selection.Delete Shift:=xlUp
Range("B1").Select
Selection.ClearContents
End Sub
Я не волшебник. Я только учусь
Sub Перенос()
'
' Перенос Макрос
'
'
Range("A1").Select
Selection.Cut
Sheets("Да").Select
ActiveSheet.Paste
Columns("A:A").EntireColumn.AutoFit
Sheets("Данные").Select
Selection.Delete Shift:=xlUp
Range("B1").Select
Selection.ClearContents
Range("A1").Select
Selection.Cut
Sheets("Нет").Select
ActiveSheet.Paste
Columns("A:A").EntireColumn.AutoFit
Sheets("Данные").Select
Selection.Delete Shift:=xlUp
Range("B1").Select
Selection.ClearContents
End Sub
Ну если примера данных не будет - то и макрос не на чем писать.
Алгоритм может быть такой - открываем кодом все 3 файла, идём циклом по сводному снизу вверх и по результатам проверки ответа переносим текущую строку в первую пустую ячейку первого столбца соотв. файла.
В конце результаты сохраняем.
Или, если форматы/заливка не нужны, а данных много, то можно сделать быстро на массивах:
1. открываем все файлы
2. из сводного берём все данные в массив
3. создаём 3 массива такого же размера
4. перебираем массив из сводного и копируем данные по трём массивам (для каждого свой счётчик строк)
5. выгружаем массивы - в сводном затираем исходные данные новым массивом (или сперва очищаем лист от всего), в других файлах можно выгружать под данными, ну или с начала листа - зависит от задачи.
6. сохраняем файлы.
Ну если примера данных не будет - то и макрос не на чем писать.
Алгоритм может быть такой - открываем кодом все 3 файла, идём циклом по сводному снизу вверх и по результатам проверки ответа переносим текущую строку в первую пустую ячейку первого столбца соотв. файла.
В конце результаты сохраняем.
Или, если форматы/заливка не нужны, а данных много, то можно сделать быстро на массивах:
1. открываем все файлы
2. из сводного берём все данные в массив
3. создаём 3 массива такого же размера
4. перебираем массив из сводного и копируем данные по трём массивам (для каждого свой счётчик строк)
5. выгружаем массивы - в сводном затираем исходные данные новым массивом (или сперва очищаем лист от всего), в других файлах можно выгружать под данными, ну или с начала листа - зависит от задачи.
6. сохраняем файлы. Hugo
Или, если форматы/заливка не нужны, а данных много, то можно сделать быстро на массивах:
1. открываем все файлы
2. из сводного берём все данные в массив
3. создаём 3 массива такого же размера
4. перебираем массив из сводного и копируем данные по трём массивам (для каждого свой счётчик строк)
5. выгружаем массивы - в сводном затираем исходные данные новым массивом (или сперва очищаем лист от всего), в других файлах можно выгружать под данными, ну или с начала листа - зависит от задачи.
6. сохраняем файлы. Автор - Hugo
Дата добавления - 29.12.2011 в 21:39
Подскажите, как из одной книги перенести данные нужной строки, в другую книгу. с помощью "=ВПР("Х";. ;. ;. ) это реально? Если да, то подскажите как указывать таблицу и столбец например КНИГИ1 ЛИСТА1
Подскажите, как из одной книги перенести данные нужной строки, в другую книгу. с помощью "=ВПР("Х";. ;. ;. ) это реально? Если да, то подскажите как указывать таблицу и столбец например КНИГИ1 ЛИСТА1 Гость
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Еще. Меньше
Листы можно перемещать или копировать в пределах одной книги, чтобы упорядочить содержащиеся в ней данные.
С помощью команды Переместить или скопировать лист можно полностью переместить или скопировать листы в пределах одной или нескольких книг. Чтобы переместить или скопировать часть данных на другие листы или в другие книги, можно использовать команды Вырезать и Копировать.
Перемещение листа в книге
Щелкните ярлычок листа и перетащите его в нужное место.
Внимание: После перемещения листа в другую книгу проверьте все формулы и диаграммы, которые ссылаются на данные этого листа: в результате этой операции в книге могут появиться ошибки или неожиданные результаты. Точно так же, если переместить лист, на который ссылается трехмерные ссылки, данные на нем могут быть включены или не включены в расчет.
Копирование листа в одной книге
Удерживая нажатой клавишу CTRL, перетащите ярлычок листа на нужное место.
Щелкните ярлычок листа правой кнопкой мыши и выберите команду Переместить или скопировать.
Установите флажок Создать копию.
В разделе перед листом укажите, куда вы хотите поместить копию.
Если данные требуется переупорядочить, можно менять порядок листов в книге, а также копировать и перемещать листы в другие книги. Обратите внимание на то, что после перемещения листа в вычислениях и на диаграммах, в основе которых лежат содержащиеся на нем данные, могут использоваться неправильные значения.
Перемещение листа
Перетащите ярлычок листа в нужное место в строке ярлычков.
Копирование листа
Нажмите и удерживайте клавишу OPTION.
Перетащите ярлычок листа в строке ярлычков в место, где нужно создать копию.
Важно: Отпустите сначала кнопку мыши, а затем — клавишу OPTION.
Перемещение листа в другую книгу
Внимание: После перемещения листа в другую книгу проверьте все формулы и диаграммы, которые ссылаются на данные этого листа: в результате этой операции в книге могут появиться ошибки или неожиданные результаты. Точно так же, если переместить лист, на который ссылается трехмерные ссылки, данные на нем могут быть включены или не включены в расчет.
Откройте книгу, в которую требуется переместить лист.
В меню Окно щелкните книгу, в которую входит перемещаемый лист.
Щелкните лист, который требуется скопировать в другую книгу.
В меню Правка выберите пункты Лист > Переместить или скопировать лист.
В меню В книгу выберите книгу, в которую требуется переместить лист.
Совет: Чтобы создать новую книгу и переместить в нее лист, выберите вариант новая книга.
В поле Перед листом выберите лист, перед которым нужно вставить перемещаемый лист, или вариант переместить в конец.
Копирование листа в другую книгу
Откройте книгу, в которую требуется скопировать лист.
В меню Окно щелкните книгу, в которую входит копируемый лист.
Выберите лист, который требуется скопировать.
В меню Правка выберите пункты Лист > Переместить или скопировать лист.
В меню В книгу выберите книгу, в которую требуется скопировать лист.
Совет: Чтобы создать новую книгу и переместить в нее лист, выберите вариант новая книга.
В поле Перед листом выберите лист, перед которым нужно вставить скопированный лист, или вариант переместить в конец.
Установите флажок Создать копию.
Изменение цвета ярлычка листа
Изменение цвета ярлычков листов может облегчить отслеживание информации в больших книгах.
Удерживая клавишу CONTROL, щелкните ярлычок листа.
Выберите команду Цвет ярлычка и укажите нужный цвет.
В Excel в Интернете можно дублировать (или копировать) книги. Просто щелкните правой кнопкой мыши имя ярлычка в нижней части листа и выберите команду Дублировать.
Если ваш лист содержит элементы, из-за которых его невозможно продублировать, можно создать его копию вручную, скопировав все данные и вставив их на новый лист. Вот как это сделать:
Выделите все данные на листе.
Сочетания клавиш. Нажмите клавиши CTRL+ПРОБЕЛ на клавиатуре, а затем клавиши SHIFT+ПРОБЕЛ.
Скопируйте все данные на листе, нажав CTRL+C.
Щелкните знак плюса (+), чтобы добавить пустой лист.
Щелкните первую ячейку на новом листе и нажмите CTRL+V, чтобы ввести данные.
Примечание: При вставке ячеек на новый лист примененное к ним условное форматирование будет потеряно.
В Excel в Интернете, если щелкнуть правой кнопкой мыши явку листа, как в настольном приложении Excel, вы не сможете переместить или скопировать лист. В Excel в Интернете вы можете получить такой же результат, скопируя все данные на листе и вкопив их на пустой лист в другой книге.
Чтобы переместить или скопировать книгу в другую книгу в Excel в Интернете, выполните указанные Excel в Интернете.
Выделите все данные на листе.
Сочетания клавиш: нажмите клавиши CTRL+ПРОБЕЛ, а затем клавиши SHIFT+ПРОБЕЛ.
Скопируйте все данные на листе, нажав CTRL+C.
Откройте книгу, в которую необходимо вставить данные, и щелкните знак "плюс" (+) в строке состояния, чтобы добавить новый пустой лист.
Щелкните первую ячейку нового таблицы, а затем нажмите CTRL+V, чтобы ввести данные на этот.
Примечание: При вставке ячеек в другую книгу примененное к ним условное форматирование будет потеряно.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Копирует лист в другое расположение в текущей книге или новой книге.
Синтаксис
выражения. Copy (Before, After)
выражение Переменная, представляюная объект "Таблица ".
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Before | Необязательный | Variant | Лист, перед которым будет размещен скопирован лист. Вы не можете указать Перед , если указать После. |
After | Необязательный | Variant | Лист, после которого будет размещен скопирован лист. Вы не можете указать После, если вы указываете Раньше. |
Примечания
Если вы не указываете ни до, ни после, Microsoft Excel создает новую книгу, которая содержит скопированные объекты таблицы. Недавно созданная книга содержит свойство Application.ActiveWorkbook и содержит одну таблицу. В единой таблице сохраняются свойства name и CodeName исходных таблиц. Если скопированная таблица держала лист кода листа в проекте VBA, то это также осуществляется в новой книге.
Выбор массива из нескольких листов можно скопировать на новый пустой объект книги аналогичным образом.
Источник и назначение должны быть в одном Excel. Пример приложения, в противном случае он вызывает ошибку времени запуска '1004': Нет такого интерфейса поддерживается, Sheet1.Copy objWb.Sheets(1) если что-то подобное было использовано, или ошибка времени запуска '1004': Метод копирования класса Worksheet не удалось, ThisWorkbook.Worksheets("Sheet1").Copy objWb.Sheets(1) если что-то подобное было использовано.
Пример
В этом примере копируется Sheet1, размещая копию после Sheet3.
В этом примере сначала скопируется sheet1 в новую пустую книгу, а затем сохраняется и закрывается новая книга.
В этом примере листы Sheet1, Sheet2 и Sheet4 копируется в новую пустую книгу, а затем сохраняет и закрывает новую книгу.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Задача состоит в том, чтобы скопировать определенный диапазон текущего листа, открыть другую книгу, и вставить эти скопированные данные в определенную ячейку, сохранить этот файл и закрыть. Ниже приведен код VBA.
Вариант 2: В открывшейся книге запускаем макрос, чтобы он открыл нужную нам книгу, скопировал от туда нужные нам данные и вставил в нашу открытую книгу, закрыв файл из которого эти данные были скопированы
Еще пример — Скопировать диапазоны данных из активной открытой книги Excel нескольких листов (в нашем примере 3-х листов) в другую книгу, которая хранится в определенном месте. Данные будут вставлены как значения, плюс будут перенесены форматы ячеек.
Если статья была вам полезна, то буду благодарен, если вы поделитесь ей со своими друзьями с помощью кнопок расположенных ниже.
Спасибо за внимание.
Related posts:
Здравствуйте.
А если, например, открыто две книги и находясь в активной книге, как не используя путь, скопировать данные в скрытом листе пассивной книги и вставить их в активную.
Здравствуйте
А если например открыто две книги и находясь в активной книге, как не используя путь скопировать данные с пассивной книги и вставить их в активную.
Hey. I sent a screenshot. Did you get it?
Здравствуйте.
редактирую Ваш код. Возникло 2 проблемы:
1.начало таблицы, из которой необходимо скопировать данные каждый раз начинается с разного номера строки так как в первоначальном файле данные формируются расширенным фильтром (выделено красным)
2.перед тем как скопируются новые данные во второй файл, необходимо , чтобы из этого столбца удалились старые
Sub Макрос()
Range(«b20000:b20100»).Select
Selection.Copy
Workbooks.Open Filename:= «путь к файлу, в который копируем»
Range(«A2»).Select
ActiveSheet.Paste
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
Можно так сделать или нужно писать другой макрос?
Добрый день. Подскажите что надо поменять в это строчке что бы не прописывать полный путь к файлу, а можно было выбирать диалоговым окном путь и имя файла
Set bookconst = Workbooks.Open(«C:\Users\User\Desktop\1.xlsx»)
Вызов диалогового окна нашел. Спасибо за ответ
Sub AttachFile_test() ‘ пример использования
Filename$ = GetFilePath()
If Filename$ = «» Then Exit Sub
MsgBox «Выбран файл: » & Filename$
End Sub
Function GetFilePath(Optional ByVal Title As String = «Выберите файл для обработки», _
Optional ByVal InitialPath As String = «c:\», _
Optional ByVal FilterDescription As String = «Файлы счетов», _
Optional ByVal FilterExtention As String = «*.*») As String
On Error Resume Next
With Application.FileDialog(msoFileDialogOpen)
.ButtonName = «Выбрать»: .Title = Title:
.InitialFileName = GetSetting(Application.Name, «GetFilePath», «folder», InitialPath)
.Filters.Clear: .Filters.Add FilterDescription, FilterExtention
If .Show -1 Then Exit Function
GetFilePath = .SelectedItems(1)
folder$ = Left(.SelectedItems(1), InStrRev(.SelectedItems(1), «\»))
SaveSetting Application.Name, «GetFilePath», «folder», folder$
End With
End Function
Добрый день! Могли бы Вы помочь в решении проблемы, есть лист который необходимо поделить на несколько новых книг по параметру Город ( т.е. будет новая книга :Москва в которой будет шапка, город, марка,номер, водитель, Питер в которой будет шапка, город, марка,номер, водитель и т.д.) при этом сохранились форматы ячеек, а сама книга будет названа как город который будет в ней. Потом необходимо поделить лист на книги по параметру Марка и книга будет называться как Марка которая в ней будет. Заранее благодарна!
Как можно изменить код макроса, если при открытии файла его нет по указанному адресу. Нужно чтобы макрос остановится и открылось окно с информацией, что файл не найден. Иначе выдаёт ошибку.
Здравствуйте! Помогите, пожалуйста, в решении задачи:
Есть 2 файла. В первом файле хранятся столбцы с данными, файл ежедневно обновляется данными. Во втором — итоговая таблица. Нужно автоматически копировать столбцы из первого файла и вставить в конец таблицы второго.
Помогите, пожалуйста.
Нужен макрос, чтобы по нажатию, копировал данные из определенного статичного столбца в активный столбец (на котором стоит курсор).
Заранее, спасибо!
Включите запись макрорекодера, проделайте всю операцию и остановите запись. Получится нужный вам макрос
Добрый день! Вы просто герой! всем отвечаете и помогаете!
Помогите и мне пожалуйста, Вот код:
Sub форЮля()
Range(«A1:G1»).Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
Selection.Copy
ChDir «C:\Users\karlov\Desktop\mind»
Workbooks.Open Filename:=»1″
Range(«A1»).Select
ActiveSheet.Paste
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.CutCopyMode = False
End Sub
как сделать так что бы запись в фаил «1» всегда была на одну строчку ниже?
2 дня уже не могу сделать , надеюсь на Вас. Спасибо.
Попробуйте добавить между
Range («A1»).Select и ActiveSheet.Paste
ActiveSheet.Range("A1").End(xlDown).Offset(1, 0).Select
ДД!
спасибо большое за Ваш пост! Нужно было переносить строки из общей таблицы на разные листы другой книги.
Подскажите, можно ли добавить условие в код? У меня большая таблица хронометража по разным показателям. Возможно ли копирование только тех ячеек значение которых больше 0?
То, что я имею сейчас:
Sub Перенос_строк_состав_комм_КМ()
Workbooks.Open Filename:=C:\1\2.xlsx»
Workbooks(«2.xlsx»).Worksheets(«приложение 3»).Range(«F30:BC30»).Copy
Workbooks(«КФ.xlsm»).Activate
ActiveWorkbook.Worksheets(«составление комм КМ»).Range(«C5»).Select
ActiveSheet.Paste
Workbooks(«2.xlsx»).Close
End Sub
Добрый день. Ваш код мне очень подходит. Вопрос, как изменить диапазон ячеек в коде, при условии, что я хочу перенести в другую книгу в определенный лист несколько разных ячеек с одного листа НАПРИМЕР диапазоны B7:С24 и H7:I24 . Подскажите как правильно это нужно указать. Спасибо.
Решили вопрос? Вам нужно скопировать сначала один диапазон, потом снова выделить книгу откуда вы копируете, например так
Workbooks(«Книга1.xlsm»).Activate
снова повторить копирование уже другого диапазона
У меня более 30 вкладок в одной книге, и часть ячеек не должна копировать в другую книгу, они должны совместиться. Я уже много перепробовала, но почему то копирует только второй диапазон, а первый будто не видит… например я пишу код
abook.Worksheets(«3»).Activate
Range(«B7:C39», «H7:I39»).Copy
bookconst.Worksheets(«3»).Activate
Range(«B7»).Select ‘выделяем диапазон
а копирует он только диапазон «H7:I39», игнорируя диапазон B7:C39
Так я и не решила эту проблему..
На мой взгляд у вас проблема о объединенных ячейках. У вас 61 и другие строки объединены. Вы попробуйте вручную выделить диапазон B7:C39 — у вас не получится и у VBA тоже не получается
Нужно делать по-отдельности. Сначала одни диапазон, потом второй и так далее
abook.Worksheets («3»).Activate
Range («B7:C39»).Copy
bookconst.Worksheets («3»).Activate
Range («B7»).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
После этого снова активируете первую книгу и копируете второй диапазон
abook.Worksheets («3»).Activate
Range («H7:I39»).Copy
…
Эти Варианты я все перепробовала, решение оказалось таким:
Range(«B9:C2900, D9:E2900, K9:L2900»).Copy
bookconst.Worksheets(«благ»).Activate
Range(«B4»).Select ‘встаем на ячейку А1
При этом в заданных диапазонах не должны быть пересечения объеденных ячеек.
СПАСИБО АВТОРУ
Добрый день,
В коде при варианте 1 выводит ошибку 1004, выделяя желтым строку кода:
Range(«A6»).Select
В этой строке вряд ли ошибка может быть. Проверил код, должно все работать
Единственное вот тут неправильное описание
Workbooks.Open Filename:= «путь к файлу»
здесь нужно указать не путь к файлу, а только название файла, путь к папке мы указали в чуть выше в коде
Вопрос не актуален, спасибо!
Решение найдено!
Отлично, в чем была причина?
Также, вот чуток модифицированный вариант для того, чтобы данные не перезаписывались, а вставлялись в новую строку:
Range(«A1:E1»).Select
Selection.Copy
ChDir «C:\Users\50545\Desktop»
Workbooks.Open Filename:=»123.xlsx»
ActiveSheet.Range(«A1»).Select
If ActiveSheet.Range(«A1»).Value = «» Then
ActiveSheet.Paste
ActiveWorkbook.Save
ActiveWorkbook.Close
Else
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
ActiveWorkbook.Close
Создал отдельный модуль для макроса (до этого был в модуле листа)…
Добрый день,
К сожалению, ошибку все еще выдает 🙁
Прикладываю сам файл и принт-скрин…
Буду признателен за помощь в исправлении…
Доброго времени суток.
Подскажите пожалуйста код макроса со следующим функционалом:
Есть несколько документов. Первый документ — база со всеми данными, а остальные — документы в которых нужно скопировать некоторые данные из базы.
На словах макрос я бы описал так:
Открываем документ «База» вкладка «Лист1» копируем значение ячейки С15, после чего вставляем её в документ «Отчёт» вкладка «Данные» в поле F19.
Далее
Открываем документ «База» вкладка «Лист1» копируем значение ячейки С18, после чего вставляем её в документ «Отчёт» вкладка «Данные» в поле D20.
Далее
Открываем документ «База» вкладка «Лист1» копируем значение ячейки С24, после чего вставляем её в документ «Отчёт» вкладка «Данные» в поле L3.
И так далее…
Да, необходимо копировать только значение (стиль и т.д. не нужно) И если например в базе какая то ячейка стала пустой, то на пустоту необходимо заменить значение, что было прописано ранее в остальных документах.
В программировании не силён, если можно с кратким объяснением.
Пример приложил. Значения цифровые и текстовые, могут быть одновременно. Должны быть скопированы в неизменном виде (как в примере). Поля Параметр 2, Параметр 3 и т.д. роли не играют. Этим я просто показал что ячейки могут находиться в разных местах.
Да, в примере имена людей совпадают, но в реальности они могут отличаться, потому то я и прошу скрипт с указанием с какой в какую ячейку копировать данные. Положение в списке как правило не меняется.
Добрый вечер. Это опять я.
Появилась новая задача. Есть файл источник в котором есть данные.
Тот макрос, который Вы помогли запустить копирует только из этого, определенного файла.
А можно сделать так, чтобы макрос работал из любого другого файла.
То есть я копирую макрос в другой файл , а он сохраняет в отдельный.
нет. все равно заменяет.
может Вы можете помочь немного по другому.
Вот макрос, который копирует нужный диапазон и копирует в нужную книгу.
НО как и в первом варианте надо , после изменения в основном файле данных, вставлять не в туже строку , а в следующую.
Sub Кнопка2 Щелчок()
‘
‘ Кнопка2_Щелчок Макрос
‘
‘ Сочетание клавиш: Ctrl+j
‘
Range(«A7:J7″).Select
Selection.Copy
Workbooks.Open Filename:=»C:\Users\Slava\Desktop\Neuer Ordner\1.xlsm»
Range(«A1:J1»).Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
может быть так проще?
Нет, не проще. Проверьте еще раз внимательно. У меня все работает. Данные не заменяются, а вставляются в следующие строку.
Сейчас, кстати заметил, что надо брать не G5000, а F5000 так как в столбце G ничего не вставляется, поэтому он и заменяет данные, так как последняя строчка всегда одна и та же
Добрый вечер. Хочу Вас поблагодарить. Все получилось.
Только я методом «тыка» изменил немного код. А именно вот эту строку
iLastRow = Workbooks(«Книга1.xlsm»).Worksheets(«Лист1»).Range(«F5000»).End(xlUp).Row + 1
у Вас стоял («Книга1.xlsm») а я написал («1.xlsm») указал ту книгу в которую производить копирование и всё пошло нормально.
Еще раз спасибо.
Да, все верно. Я просто тестировал на своих файлах и забыл поменять. Удачи!
Есть файл СПК (файл-пример разбил на 2 архива)
Необходимо при помощи макросов дынные из столбца С (каждого листа - в примере 3, в реалии 15) книги СПК, перенести на каждый лист в столбец С его копии (по сути, книги СПК-копия).
При этом, чтобы в ячейки вставлялись значения, а не формулы.
Там, как я понял 3 варианта:
1) Макрос вставляется в книгу ОТКУДА переносятся данные (в моем случае будет СПК)
2) Макрос вставляется в книгу КУДА будут переносится данные (в моем случае СПК-копия)
3) Я не совсем понял, что там написано. Вот что понял: данные копируются из активной к в другую, с нескольких листов, вставляются только значения.
По идее, мне нужен вот этот сложный страшный третий вариант.
Но у меня просьба. Если не сложно, сделайте пожалуйста 3 варианта, может уже на готовых реальных примерах получится разобраться))
И подскажите, еще каким образом лучше копировать диапазоны данных в редактор vba
Есть файл СПК (файл-пример разбил на 2 архива)
Необходимо при помощи макросов дынные из столбца С (каждого листа - в примере 3, в реалии 15) книги СПК, перенести на каждый лист в столбец С его копии (по сути, книги СПК-копия).
При этом, чтобы в ячейки вставлялись значения, а не формулы.
Там, как я понял 3 варианта:
1) Макрос вставляется в книгу ОТКУДА переносятся данные (в моем случае будет СПК)
2) Макрос вставляется в книгу КУДА будут переносится данные (в моем случае СПК-копия)
3) Я не совсем понял, что там написано. Вот что понял: данные копируются из активной к в другую, с нескольких листов, вставляются только значения.
По идее, мне нужен вот этот сложный страшный третий вариант.
Но у меня просьба. Если не сложно, сделайте пожалуйста 3 варианта, может уже на готовых реальных примерах получится разобраться))
И подскажите, еще каким образом лучше копировать диапазоны данных в редактор vba
biomirror
Там, как я понял 3 варианта:
1) Макрос вставляется в книгу ОТКУДА переносятся данные (в моем случае будет СПК)
2) Макрос вставляется в книгу КУДА будут переносится данные (в моем случае СПК-копия)
3) Я не совсем понял, что там написано. Вот что понял: данные копируются из активной к в другую, с нескольких листов, вставляются только значения.
По идее, мне нужен вот этот сложный страшный третий вариант.
Но у меня просьба. Если не сложно, сделайте пожалуйста 3 варианта, может уже на готовых реальных примерах получится разобраться))
И подскажите, еще каким образом лучше копировать диапазоны данных в редактор vba
Автор - biomirror
Дата добавления - 17.04.2015 в 10:50
Выложите примеры файлов, а то действительно непонятно становится что вы хотите) Файл откуда переносить, файл куда переносить и укажите на какие листы и что переносить
Выложите примеры файлов, а то действительно непонятно становится что вы хотите) Файл откуда переносить, файл куда переносить и укажите на какие листы и что переносить excelhelprus
Правильно заданный вопрос . дальше, думаю, понятно
Врт пример перебора листов и переноса значений колонки С на вновьсоздаваемыее листы новой книги
[vba]
Sub QWERT()
Dim WB As Workbook, SB As Worksheet
Dim WI As Workbook, SI As Worksheet, LR
Set WI = ActiveWorkbook
Set WB = Workbooks.Add 'в новую книгу
For Each SI In WI.Worksheets 'перебираем листы в книге-источнике
LR = SI.Cells(SI.Rows.Count, 3).End(xlUp).Row 'определяем количество занятых строк текущеголиста
Set SB = WB.Worksheets.Add 'добавляем новый лист в новую книгу
SB.Range(SB.Cells(1, 3), SB.Cells(LR, 3)) = SI.Range(SI.Cells(1, 3), SI.Cells(LR, 3)).Value 'копируем значения
Next
End Sub
Правильно заданный вопрос . дальше, думаю, понятно
Врт пример перебора листов и переноса значений колонки С на вновьсоздаваемыее листы новой книги
[vba]
Sub QWERT()
Dim WB As Workbook, SB As Worksheet
Dim WI As Workbook, SI As Worksheet, LR
Set WI = ActiveWorkbook
Set WB = Workbooks.Add 'в новую книгу
For Each SI In WI.Worksheets 'перебираем листы в книге-источнике
LR = SI.Cells(SI.Rows.Count, 3).End(xlUp).Row 'определяем количество занятых строк текущеголиста
Set SB = WB.Worksheets.Add 'добавляем новый лист в новую книгу
SB.Range(SB.Cells(1, 3), SB.Cells(LR, 3)) = SI.Range(SI.Cells(1, 3), SI.Cells(LR, 3)).Value 'копируем значения
Next
End Sub
Sub QWERT()
Dim WB As Workbook, SB As Worksheet
Dim WI As Workbook, SI As Worksheet, LR
Set WI = ActiveWorkbook
Set WB = Workbooks.Add 'в новую книгу
For Each SI In WI.Worksheets 'перебираем листы в книге-источнике
LR = SI.Cells(SI.Rows.Count, 3).End(xlUp).Row 'определяем количество занятых строк текущеголиста
Set SB = WB.Worksheets.Add 'добавляем новый лист в новую книгу
SB.Range(SB.Cells(1, 3), SB.Cells(LR, 3)) = SI.Range(SI.Cells(1, 3), SI.Cells(LR, 3)).Value 'копируем значения
Next
End Sub
Читайте также: