Страница 1 из 1
Макрос для переноса столбцов в Excell
Добавлено: 18 июл 2010, 10:52
anom
Всем привет!
Господа, необходим небольшой макрос с Excell, который позволит делать следующее: путем нажатия кнопки в Документ1.xls вставлять столбец значений из Документ2.xls.
Т.е. необходимо переносить ячейки не открывая файл Документ2.xls. И делать это с помощью кнопки. Прикрутить к ней макрос. Такое возможно?
На самом деле задача гараздо сложнее, т.к. нужно столбцы ячеек копировать в Документ1.xls путем нажатия одной кнопки из 50 файлов, но мне сейчас разобраться хотя бы с маленьким примером.
Необходим специалист со знанием Microsoft Visual Basic.
Буду примного благодарен за помощь!
Если необходима более детальная расшифровка задачи - расскажу. Могу выслать файлы, которые необходимо использовать.
Re: Макрос для переноса столбцов в Excell
Добавлено: 18 июл 2010, 11:51
EducatedFool
И делать это с помощью кнопки. Прикрутить к ней макрос. Такое возможно?
Конечно, возможно.
Какие столбцы копировать? Куда и в каком порядке их вставлять?
из 50 файлов
Все файлы находятся в одной папке? Обрабатывать ВСЕ файлы из этой папки, или только некоторые?
Где макрос должен искать эту папку?
Re: Макрос для переноса столбцов в Excell
Добавлено: 18 июл 2010, 14:46
anom
EducatedFool писал(а):Конечно, возможно.
Какие столбцы копировать? Куда и в каком порядке их вставлять?
Все файлы находятся в одной папке? Обрабатывать ВСЕ файлы из этой папки, или только некоторые?
Где макрос должен искать эту папку?
1.Копировать столбец из Документ2.xls (диапазон ячеек E5...E161) и вставить его в Документ1.xls в ячейки D5...D161. Это заполнение для
одного столбца сводной таблицы Документ1.xls. Всего данные нужно скопировать из 62 таблиц (и соответственно 62 файла - Документ2.xls...Документ63.xls). Т.е. дальше из Документ3.xls (диапазон ячеек E5...E161) в Документ1.xls в ячейки Е5...Е161, Документ4.xls (диапазон ячеек E5...E161) в Документ1.xls в ячейки F5...F161 и т.д.
2.Все файлы (62шт+сводный) будут находиться в одной папке. Пусть будет C:\SVODKA. Обрабатывать все файлы в этой папке. Их всегда будет 62
Re: Макрос для переноса столбцов в Excell
Добавлено: 21 июл 2010, 00:28
nilem
Например, вот такой вариант:
Код: Выделить всё
Option Explicit
Sub ЗаполнитьСтолбцы()
Dim Имя As String, Путь As String, Пересчет As Long, i As Integer
Пересчет = Application.Calculation
Application.ScreenUpdating = False: Application.Calculation = xlManual
Application.DisplayAlerts = False
Путь = ThisWorkbook.Path & "\"
For i = 2 To 63
Имя = "Документ" & i & ".xlsx" 'для 2007
' Имя = "Документ" & i & ".xls" 'если 2003
If Dir(Путь & Имя) = "" Then MsgBox "Файла Документ" & i & " в этой папке нет.": Exit For
With Range(Cells(5, i + 2), Cells(161, i + 2))
.ClearContents
.FormulaR1C1 = "='" & Путь & "[" & Имя & "]Лист1'!R5C5:R161C5"
End With
Next i
With Range(Cells(5, 4), Cells(161, i + 1))
.Value = .Value: .Replace 0, "", xlWhole
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True: Application.Calculation = Пересчет
End Sub