Добрый день! Я новичок в vba, если нетрудно, просьба помочь дополнить и поправить ранее написанного vba.
Суть в том, что есть файлы из которых нужно копировать информацию, при этом чтобы после клика на ячейку выбрался активный диапазон и скопировался(это работает), надо внедрить, чтобы копировал с листа, где активный диапазон, имя листа может быть разное. Потом необходимо выбрать ячейку (может быть любая), куда вставится путь и название файла из которого копируется (это работает). Далее нужно вставить данные, которые копировались из активного диапазона (это работает), но формат меняется, а надо сохранить формат. А ещё надо протянуть (заполнить) автоматом ячейку, где есть название пути, на длину столбца равняться, где есть вставляемые данные, а потом надо вниз на следующую строку вниз ячейку В спуститься, чтобы дальше также запускать и данные вставлять:
Sub CopyPaste()Dim avFiles
avFiles = Application.GetOpenFilename("Excel files(*.xls*), *.xls*", 1, "Выбрать", , True)
If VarType(avFiles) = vbBoolean Then
'Нажата отмена'
Exit Sub
End If
'Открываем файл, копируем данные и закрываем
Workbooks.Open Filename:=avFiles(1)
Dim Rng, Rng1 As Range
On Error Resume Next
Set Rng = Application.InputBox("Укажите мышкой на нужную ячейку", "Выберите ячейку", , , , , ,
If Rng Is Nothing Then
MsgBox "Вы не выбрали ячейку!", 48, "Ошибка"
Exit Sub
End If
On Error GoTo 0
Range(Rng.Address).Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
ActiveWorkbook.Close
'выбираем ячейку для вставки пути
On Error Resume Next
Set Rng1 = Application.InputBox("Укажите мышкой на нужную ячейку", "Выберите ячейку", , , , , ,
If Rng1 Is Nothing Then
MsgBox "Вы не выбрали ячейку!", 48, "Ошибка"
Exit Sub
End If
On Error GoTo 0
'вставляем путь файла
Range(Rng1.Address).Value = avFiles(1)
'В открытый файл вставляем данные
ActiveSheet.Paste
End Sub
Суть в том, что есть файлы из которых нужно копировать информацию, при этом чтобы после клика на ячейку выбрался активный диапазон и скопировался(это работает), надо внедрить, чтобы копировал с листа, где активный диапазон, имя листа может быть разное. Потом необходимо выбрать ячейку (может быть любая), куда вставится путь и название файла из которого копируется (это работает). Далее нужно вставить данные, которые копировались из активного диапазона (это работает), но формат меняется, а надо сохранить формат. А ещё надо протянуть (заполнить) автоматом ячейку, где есть название пути, на длину столбца равняться, где есть вставляемые данные, а потом надо вниз на следующую строку вниз ячейку В спуститься, чтобы дальше также запускать и данные вставлять:
Sub CopyPaste()Dim avFiles
avFiles = Application.GetOpenFilename("Excel files(*.xls*), *.xls*", 1, "Выбрать", , True)
If VarType(avFiles) = vbBoolean Then
'Нажата отмена'
Exit Sub
End If
'Открываем файл, копируем данные и закрываем
Workbooks.Open Filename:=avFiles(1)
Dim Rng, Rng1 As Range
On Error Resume Next
Set Rng = Application.InputBox("Укажите мышкой на нужную ячейку", "Выберите ячейку", , , , , ,
If Rng Is Nothing Then
MsgBox "Вы не выбрали ячейку!", 48, "Ошибка"
Exit Sub
End If
On Error GoTo 0
Range(Rng.Address).Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
ActiveWorkbook.Close
'выбираем ячейку для вставки пути
On Error Resume Next
Set Rng1 = Application.InputBox("Укажите мышкой на нужную ячейку", "Выберите ячейку", , , , , ,
If Rng1 Is Nothing Then
MsgBox "Вы не выбрали ячейку!", 48, "Ошибка"
Exit Sub
End If
On Error GoTo 0
'вставляем путь файла
Range(Rng1.Address).Value = avFiles(1)
'В открытый файл вставляем данные
ActiveSheet.Paste
End Sub