Войти

Показать полную графическую версию : Копирование строк из одного файла в другой (excel)


maxim43g
25-11-2020, 10:52
Добрый день.
Нашёл на просторах интернета такой прекрасный скрипт
Option Explicit
Dim objApp, objWbs, objWorkbook1, objWorkbook2, objSheet1, objSheet2

Set objApp = CreateObject("Excel.Application")
Set objWbs = objApp.WorkBooks
objApp.Visible = False ' Невидимый
objApp.DisplayAlerts = False ' Не спрашивать глупости
Set objWorkbook1 = objWbs.Open("C:\1\Template.xls") ' Открываем шаблон (В нём первая строка, с картинкой)
Set objWorkbook2 = objWbs.Open("C:\1\Data.xls") ' Открываем данные
Set objSheet1 = objWorkbook1.Sheets(1) ' Первый лист
Set objSheet2 = objWorkbook2.Sheets(1) ' Первый лист

' Копируем все заполненные ячейки из файла с данными, в шаблон, начиная со второй строки
objSheet2.UsedRange.Copy(objSheet1.Rows(2))
' Или копируем первую строку из шаблона, в книгу с данными, заменяя имеющуюся
' objSheet1.Rows(1).Copy(objSheet2.Rows(1))

' Сохраняем изменённый шаблон под другим именем.
objWorkbook1.SaveAs("C:\1\Result.xls")
' Или сохраняем изменённую книгу с данными под тем же именем.
' objWorkbook2.Save

objWbs.Close


подскажите, что в нем нужно редактировать, что бы я мог копировать определенные столбцы , а не строки целиком? и вставлять в определенные столбцы в другом файле.
Пример скопировать столбец А файла "1", в столбец В файла "2"

DJ Mogarych
25-11-2020, 14:23
Изучите возможности модуля ImportExcel (https://github.com/dfinke/ImportExcel) в Powershell, тогда не нужно будет геморроиться с COM-объектами.

maxim43g
25-11-2020, 16:28
я в этом не особо понимаю.
может хотя бы поможете изменить строку objSheet2.UsedRange.Copy(objSheet1.Rows(2)) так, что если бы в objSheet1 есть данные он их не стирал и записывал новые, а копировал их после строк с данными

Iska
25-11-2020, 19:14
Пример скопировать столбец А файла "1", в столбец В файла "2" »
objSheet1.Columns(1).Copy(objSheet2.Columns(2))
Не проверялось.

может хотя бы поможете изменить строку objSheet2.UsedRange.Copy(objSheet1.Rows(2)) так, что если бы в objSheet1 есть данные он их не стирал и записывал новые, а копировал их после строк с данными »
А вот это будет напрямую зависеть от содержимого Ваших Sheet1 и Sheet2.

Но вообще, если Вы пытаетесь изобразить из Microsoft Excel базу данных — бросьте, дурная затея.

maxim43g
26-11-2020, 16:56
А вот это будет напрямую зависеть от содержимого Ваших Sheet1 и Sheet2. »
что вы имеете ввиду?
Копирование из столбца A в столбец A, из В в В, и т.д.




© OSzone.net 2001-2012