Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как вставить данные из старой книги в новую созданную книгу - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как вставить данные из старой книги в новую созданную книгу (Макросы/Sub)
Как вставить данные из старой книги в новую созданную книгу
Дмитрий_С Дата: Среда, 14.01.2015, 12:19 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день!

У меня имеется файл из которого мне необходимо скопировать некоторые столбцы в новую созданную книгу.

Данный код нашел в интернете, не могу в нем сделать новую книгу активной чтобы в ней работать, например как вставить данные из буфера обмена, т.к. активной книгой остается та из которой копирую столбцы

Помогите, пожалуйста. (В VBA я новичок)

[vba]
Код

Public Sub nytfjdkt()

'-----Копирование столбцов из старой книги в новую книгу----------
      Range("A:H,S:S,U:U,W:W,AQ:AQ,AE:AE,AF:AF,AY:AY,BA:BA,BG:BG,BH:BH,BI:BI").Select
'    Range( _
          "Таблица_beta_newbooksql_Rebus_vwDefect[[#Headers],[Сумма дельта приходная, руб.]]" _
          ).Activate
      Selection.Copy
          '------------СОЗДАНИЕ НОВОЙ КНИГИ---------------

Dim oExcel As New Excel.Application 'Запускаем Excel
oExcel.Visible = True 'Делаем его видимым
Dim oWbk As Excel.Workbook 'Создаем новую книгу Книга1
Set oWbk = oExcel.Workbooks.Add()
Dim oSheet As Excel.Worksheet
Set oSheet = oWbk.Worksheets.Item("Лист1") 'Находим Лист1
oSheet.Name = "Новый лист" 'Присваиваем ему имя "Новый лист"
Dim oRange As Range 'Находим диапазон A1 в Книга1
Set oRange = oSheet.Range("A1")

'----------На данном этапе я хочу вставить данные из буфера

oRange.Value = "Начиная с этой ячейки я хочу вставить диапазон из буфера" 'вносим в него данные

End Sub
[/vba]

[moder]Читаем внимательно правила форума
Особенно п.п.3[/moder]


Сообщение отредактировал DJ_Marker_MC - Среда, 14.01.2015, 12:31
 
Ответить
СообщениеДобрый день!

У меня имеется файл из которого мне необходимо скопировать некоторые столбцы в новую созданную книгу.

Данный код нашел в интернете, не могу в нем сделать новую книгу активной чтобы в ней работать, например как вставить данные из буфера обмена, т.к. активной книгой остается та из которой копирую столбцы

Помогите, пожалуйста. (В VBA я новичок)

[vba]
Код

Public Sub nytfjdkt()

'-----Копирование столбцов из старой книги в новую книгу----------
      Range("A:H,S:S,U:U,W:W,AQ:AQ,AE:AE,AF:AF,AY:AY,BA:BA,BG:BG,BH:BH,BI:BI").Select
'    Range( _
          "Таблица_beta_newbooksql_Rebus_vwDefect[[#Headers],[Сумма дельта приходная, руб.]]" _
          ).Activate
      Selection.Copy
          '------------СОЗДАНИЕ НОВОЙ КНИГИ---------------

Dim oExcel As New Excel.Application 'Запускаем Excel
oExcel.Visible = True 'Делаем его видимым
Dim oWbk As Excel.Workbook 'Создаем новую книгу Книга1
Set oWbk = oExcel.Workbooks.Add()
Dim oSheet As Excel.Worksheet
Set oSheet = oWbk.Worksheets.Item("Лист1") 'Находим Лист1
oSheet.Name = "Новый лист" 'Присваиваем ему имя "Новый лист"
Dim oRange As Range 'Находим диапазон A1 в Книга1
Set oRange = oSheet.Range("A1")

'----------На данном этапе я хочу вставить данные из буфера

oRange.Value = "Начиная с этой ячейки я хочу вставить диапазон из буфера" 'вносим в него данные

End Sub
[/vba]

[moder]Читаем внимательно правила форума
Особенно п.п.3[/moder]

Автор - Дмитрий_С
Дата добавления - 14.01.2015 в 12:19
Hugo Дата: Среда, 14.01.2015, 12:37 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
В новый эксель вставить скопированные столбцы будет проблематично - вставляйте в тот же эксель. Т.е. Ваш код почти полностью не годится, нужно переписывать.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеВ новый эксель вставить скопированные столбцы будет проблематично - вставляйте в тот же эксель. Т.е. Ваш код почти полностью не годится, нужно переписывать.

Автор - Hugo
Дата добавления - 14.01.2015 в 12:37
alex77755 Дата: Среда, 14.01.2015, 14:59 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

[vba]
Код
Public Sub nytfjdkt()
     Dim oWbk As Excel.Workbook
     Dim oSheet As Excel.Worksheet
     Dim Sh As Excel.Worksheet
     Set Sh = ActiveSheet
     Set oWbk = Workbooks.Add()
     Set oSheet = oWbk.Worksheets("Лист1") 'Находим Лист1
     oSheet.Name = "Новый лист" 'Присваиваем ему имя "Новый лист"
     '-----Копирование столбцов из старой книги в новую книгу----------
      Sh.Range("A:H").Copy oSheet.Range("A1")
End Sub
[/vba]


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщение[vba]
Код
Public Sub nytfjdkt()
     Dim oWbk As Excel.Workbook
     Dim oSheet As Excel.Worksheet
     Dim Sh As Excel.Worksheet
     Set Sh = ActiveSheet
     Set oWbk = Workbooks.Add()
     Set oSheet = oWbk.Worksheets("Лист1") 'Находим Лист1
     oSheet.Name = "Новый лист" 'Присваиваем ему имя "Новый лист"
     '-----Копирование столбцов из старой книги в новую книгу----------
      Sh.Range("A:H").Copy oSheet.Range("A1")
End Sub
[/vba]

Автор - alex77755
Дата добавления - 14.01.2015 в 14:59
alex77755 Дата: Среда, 14.01.2015, 15:00 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Цитата
-На данном этапе я хочу вставить данные из буфера

А надо ли их туда ложить?


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщение
Цитата
-На данном этапе я хочу вставить данные из буфера

А надо ли их туда ложить?

Автор - alex77755
Дата добавления - 14.01.2015 в 15:00
Gustav Дата: Среда, 14.01.2015, 15:45 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2757
Репутация: 1139 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Вставлю свои 5 копеек. Для создания новой книги новый Excel не нужен. И в буфер обмена через Selection.Copy - тоже не наш метод. Наш метод - как у alex77755. Я его дополнительно раскрасил множественными областями:
[vba]
Код
Sub copy2()

     Dim oSheet   As Worksheet
     Dim srcRange As Range
     Dim area     As Range
      
     Set srcRange = Intersect(ActiveSheet.UsedRange, _
                     Range("A:H,S:S,U:U,W:W,AQ:AQ,AE:AE,AF:AF,AY:AY,BA:BA,BG:BG,BH:BH,BI:BI"))
      
     Set oSheet = Workbooks.Add.Worksheets("Лист1") 'Создаем новую книгу и находим Лист1
     oSheet.Name = "Новый лист" 'Присваиваем ему имя "Новый лист"
      
     For Each area In srcRange.Areas
         area.Copy oSheet.Range(area.Address)
     Next

End Sub
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеВставлю свои 5 копеек. Для создания новой книги новый Excel не нужен. И в буфер обмена через Selection.Copy - тоже не наш метод. Наш метод - как у alex77755. Я его дополнительно раскрасил множественными областями:
[vba]
Код
Sub copy2()

     Dim oSheet   As Worksheet
     Dim srcRange As Range
     Dim area     As Range
      
     Set srcRange = Intersect(ActiveSheet.UsedRange, _
                     Range("A:H,S:S,U:U,W:W,AQ:AQ,AE:AE,AF:AF,AY:AY,BA:BA,BG:BG,BH:BH,BI:BI"))
      
     Set oSheet = Workbooks.Add.Worksheets("Лист1") 'Создаем новую книгу и находим Лист1
     oSheet.Name = "Новый лист" 'Присваиваем ему имя "Новый лист"
      
     For Each area In srcRange.Areas
         area.Copy oSheet.Range(area.Address)
     Next

End Sub
[/vba]

Автор - Gustav
Дата добавления - 14.01.2015 в 15:45
Дмитрий_С Дата: Пятница, 16.01.2015, 09:27 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А надо ли их туда ложить?


Благодаря твоему коду оказалось что не надо! specool

Я его дополнительно раскрасил множественными областями:

Красиво раскрасил, но оказалось достаточным кода у alex77755)

Друзья, огромное спасибо за помощь! Я недели две блуждал в интернете и не мог найти подходящий код, все остальные не подходили, а ошибку в них я не мог найти. Данный код это именно то, что мне надо. Всё работает! victory
 
Ответить
Сообщение
А надо ли их туда ложить?


Благодаря твоему коду оказалось что не надо! specool

Я его дополнительно раскрасил множественными областями:

Красиво раскрасил, но оказалось достаточным кода у alex77755)

Друзья, огромное спасибо за помощь! Я недели две блуждал в интернете и не мог найти подходящий код, все остальные не подходили, а ошибку в них я не мог найти. Данный код это именно то, что мне надо. Всё работает! victory

Автор - Дмитрий_С
Дата добавления - 16.01.2015 в 09:27
Hugo Дата: Пятница, 16.01.2015, 10:37 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Т.е. нужно было только вот это?
[vba]
Код
Sub tt()
     Dim r As Range
     '-----Копирование столбцов из старой книги в новую книгу----------
     Set r = ActiveSheet.Range("A:H")
     r.Copy Workbooks.Add.Sheets(1).Range("A1")
End Sub
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеТ.е. нужно было только вот это?
[vba]
Код
Sub tt()
     Dim r As Range
     '-----Копирование столбцов из старой книги в новую книгу----------
     Set r = ActiveSheet.Range("A:H")
     r.Copy Workbooks.Add.Sheets(1).Range("A1")
End Sub
[/vba]

Автор - Hugo
Дата добавления - 16.01.2015 в 10:37
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как вставить данные из старой книги в новую созданную книгу (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!