Страницы: 1
RSS
Копирование в другую книгу ячеек строки с выделенной ячейкой
 
Добрый день.
Смотрю ролики, пытаюсь понять с чем едят Excel.

Помогите с примером макроса:
открыт "исходный" документ, выделена одна из ячеек со значениями,
нужно скопировать значения строки с выделенной ячейкой в "целевой" документ.
И как бы все.

Не смог найти пример решения.
Если ткнете носом бестолкового - буду благодарен )
Изменено: Александер Пушин - 18.10.2022 15:34:34
 
Это же не про Ctrl+С и Ctrl+V надеюсь?
 
Виноват - пропустил слово "макрос" )

В открытом документе скопировать значения в строке и записать их в другой документ в столбик например
 
Хотя бы одну ячейку в строке с выделенной ячейкой как скопировать в соседний документ...
 
Код
cells(activecell.row,5).copy workbooks("ИмяКниги").worksheets("ИмяЛиста").[d7]
скопировать ячейку Е в другую книгу в d7
на момент выполнения макроса активен исходный лист (там, где выделена ячейка), а другая книга открыта в это время в Excel
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Понял  :)
Работает!

Правда спотыкается если копируемая ячейка с формулой.
А есть атрибуты позволяющие тупо копировать только отображаемые значения?

Видел пример, где в цикле обрабатывается выделенная зона: cell.Formula = cell.Value, а к отдельно взятому значению как Value применить?
Изменено: Александер Пушин - 18.10.2022 16:26:16
 
Код
workbooks("ИмяКниги").worksheets("ИмяЛиста").[d7] = cells(activecell.row,5)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Круто.

А чтобы дописывалось в файл рядом, так?
Код
Sub test()
Workbooks.Open Filename:="целевой.xlsx"
Workbooks("исходный.xlsm").Activate
Workbooks("целевой.xlsx").Worksheets("Лист1").[d7] = Cells(ActiveCell.Row, 5)
End Sub

или некрасиво... как после открытия файла вернуться в исходный из которого был запущен макрос?
 
Код
Sub test()
  Dim v
  v = Cells(ActiveCell.Row, 5)
  Workbooks.Open Filename:="целевой.xlsx"
  Workbooks("целевой.xlsx").Worksheets("Лист1").[d7] = v
End Sub
Изменено: Ігор Гончаренко - 18.10.2022 16:50:32
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Код
Sub test()
dim rActiveCell as range
Set rActiveCell = ActiveCell
Workbooks.Open Filename:="целевой.xlsx"
'Workbooks("исходный.xlsm").Activate
Workbooks("целевой.xlsx").Worksheets("Лист1").[d7] = rActiveCell.Parent.Cells(rActiveCell.Row, 5)
End Sub
 
выходит через vba можно и с файлами работать если он позволяет открывать файлы, то и закрывать и сохранять...

последний вопрос и уйду читать мануал )))
а можно так же в одну строку открыть файл и "сохранить как" с новым именем из указанной ячейки?
 
Код
  dim wb as workbook, fn$
  fn = [e6]
  set wb = Workbooks.Open Filename:="целевой.xlsx"
  wb.saveas fn
  wb.close
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
А как средствами vba создать папку с текущей датой и сохранить-как книгу в нее?

пробовал через
Код
CreateObject("Shell.Application").Namespace(ThisWorkbook.Path).NewFolder (Date)

но ничего не происходит
Изменено: Александер Пушин - 24.10.2022 16:48:44
 
вопрос не корректный
папка создается не вообще, а по какому-то конкретному адресу, пути (используйте MkDir)
как книгу вы хотите сохранить книгу? к чему это уточнение? (сохранить книгу как книгу, а как что еще)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Вы абсолютно правы.
Я хотел создать папку средствами excel в директории из которой открыт мой .xlsm и сохранить в нее файл.

в данном случае:
Код
dim wb as workbook, fn$  fn = [e6]
  set wb = Workbooks.Open Filename:="целевой.xlsx"
  wb.saveas ThisWorkbook.Path & "\" fn
  wb.close 

файл будет сохранен в ТУ ЖЕ папку откуда его и открыл, а как создать с помощью vba подпапку у текущей папки с сегодняшней датой?
 
Цитата
написал:
(используйте MkDir)
а как правильно с MkDir
Код
MkDir ThisWorkbook.Path & "\" & "123_" & Date
с Date работает а с Now не хочет...
 
MkDir ThisWorkbook.Path & "\" & "123_" & Format(Date, "DD.MM.YYYY")
хоть с Date, хоть с Now
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Кудесник!!
Страницы: 1
Наверх