Страница 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