Всем привет!
Господа, необходим небольшой макрос с Excell, который позволит делать следующее: путем нажатия кнопки в Документ1.xls вставлять столбец значений из Документ2.xls.
Т.е. необходимо переносить ячейки не открывая файл Документ2.xls. И делать это с помощью кнопки. Прикрутить к ней макрос. Такое возможно?
На самом деле задача гараздо сложнее, т.к. нужно столбцы ячеек копировать в Документ1.xls путем нажатия одной кнопки из 50 файлов, но мне сейчас разобраться хотя бы с маленьким примером.
Необходим специалист со знанием Microsoft Visual Basic.
Буду примного благодарен за помощь!
Если необходима более детальная расшифровка задачи - расскажу. Могу выслать файлы, которые необходимо использовать.
Макрос для переноса столбцов в Excell
Модератор: Naeel Maqsudov
- EducatedFool
- Сообщения: 197
- Зарегистрирован: 06 апр 2008, 14:03
- Откуда: Россия, Урал
- Контактная информация:
Конечно, возможно.И делать это с помощью кнопки. Прикрутить к ней макрос. Такое возможно?
Какие столбцы копировать? Куда и в каком порядке их вставлять?
Все файлы находятся в одной папке? Обрабатывать ВСЕ файлы из этой папки, или только некоторые?из 50 файлов
Где макрос должен искать эту папку?
Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/
Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
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
Например, вот такой вариант:
Код: Выделить всё
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