Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] копирование столбца из excel в другой excel

Ответить
Настройки темы
CMD/BAT - [решено] копирование столбца из excel в другой excel

Пользователь


Сообщения: 72
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день имеются множество файлов ( пример прикрепил ). Можно ли как то из этих всех файлов вырезать только один столбец (NUM ) И чтоб нумерация из этих столбцов была полностью видна. То есть при нажатии скриптов создавались бы excel файлы только с Num столбцами. Эти файлы лежат на D:\Новая папка а экспорт новых excel файлов например на D:\Новая папка2

Отправлено: 11:15, 10-05-2018

 

Пользователь


Сообщения: 72
Благодарности: 0

Профиль | Отправить PM | Цитировать


не нужно пустого столбца. Да. 7

Отправлено: 16:49, 10-05-2018 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


romfus, я сейчас отлучён от компьютера, не могу выдать решение, но лучше написать, например, vbs- скрипт, который последовательно откроет эксел-файлы, выделит в них нужную область и напечатает выделенное. Помнится, такая возможность в экселе была.
Либо создать пустой бланк для печати столбца, настроить параметры листа для аывода, макросом в этом бланке последовательно открывать ваши файлы, забирать нужную область и сразу пускать на печать, затем очищать напечатанное и т д.....
Корёжить исходные файлы или делать кучу новых только для печати- плохая идея. Ведь цель всей возни - напечатать выделенные области из всех указанных файлов.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 16:54, 10-05-2018 | #22


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


megaloman, ну, вроде бы уже решили, что корёжить не будем, сохранять не будем, будем токмо печатать. Осталось сообразить, как сие реализовать наиболее доступным образом .

Отправлено: 16:59, 10-05-2018 | #23


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Iska, пока я тыркал пальцем в планшет, у Вас состоялось бурное объяснение Имхо, проще и надёжнее сделать бланк и далее по тексту предыдущего поста

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 17:02, 10-05-2018 | #24


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


romfus, ну, пробуйте, что получилось:
Скрытый текст
Код: Выделить весь код
Option Explicit

Const intColumns = 7
Const intRows = 56


Dim strSourceFolder

Dim objFSO
Dim objFile

Dim objExcel

Dim objSourceSheet
Dim objDestSheet

Dim objSourceRange
Dim objDestRange


If WScript.Arguments.Count = 1 Then
	strSourceFolder = WScript.Arguments.Item(0)
	
	Set objExcel = Nothing
	
	Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
	
	If objFSO.FolderExists(strSourceFolder) Then
		For Each objFile In objFSO.GetFolder(strSourceFolder).Files
			Select Case LCase(objFSO.GetExtensionName(objFile.Name))
				Case "xls", "xlsx"
					If objExcel Is Nothing Then
						Set objExcel = WScript.CreateObject("Excel.Application")
					End If
					
					With objExcel
						With .Workbooks.Open(objFile.Path)
							Set objSourceSheet = .Worksheets.Item(1)
							Set objDestSheet = .Worksheets.Add
							
							If StrComp(objSourceSheet.Cells(1, 1).Value, "num", vbTextCompare) = 0 Then
								Set objSourceRange = objSourceSheet.Range(objSourceSheet.Cells(1, 1), objSourceSheet.Cells(intRows, 1))
								Set objDestRange = objDestSheet.Cells(1, 1)
								
								objSourceRange.Copy objDestRange
								
								Do Until objExcel.Intersect(objSourceSheet.UsedRange, objSourceRange) Is Nothing
									Set objSourceRange = objSourceRange.Offset(intRows, 0)
									
									If objDestRange.Column = intColumns Then
										objDestSheet.VPageBreaks.Add objDestRange.Offset(0, 1)
										Set objDestRange = objDestRange.Offset(intRows, 1 - intColumns)
										objDestSheet.HPageBreaks.Add objDestRange
									Else
										Set objDestRange = objDestRange.Offset(0, 1)
									End If
									
									objSourceRange.Copy objDestRange
								Loop
								
								objDestSheet.UsedRange.Columns.AutoFit
								
								objDestSheet.PrintOut
							Else
								WScript.Echo "Can't find [num] in A1 cell in first worksheet in [" & objFile.Name & "] workbook."
							End If
							
							.Close False
						End With
					End With
				Case Else
					' Nothing to do
			End Select
		Next
		
		objExcel.Quit
		
		Set objExcel = Nothing
	Else
		WScript.Echo "Can't find source folder [" & strSourceFolder & "]."
		WScript.Quit 2
	End If
Else
	WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source folder>"
	WScript.Quit 1
End If

Set objFSO = Nothing

WScript.Quit 0

После седьмого столбца и после каждой пятьдесят шестой строки вставляются жёсткие разрывы страницы.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:34, 10-05-2018 | #25



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] копирование столбца из excel в другой excel

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBA - Экономное копирование накладных из одного листа в другой для печати (Excel) Alexander_88 Microsoft Office (Word, Excel, Outlook и т.д.) 0 26-10-2015 00:31
Любой язык - Копирование таблицы (2 столбца) из файла .htm в Excel Serg2010 Скриптовые языки администрирования Windows 2 05-08-2015 22:18
2010 - [решено] Excel - копирование выбранных строк на другой лист linkwy Microsoft Office (Word, Excel, Outlook и т.д.) 3 16-08-2012 21:14
2003/XP/2000 - [решено] Excel: График из столбца с датами. ven00m Microsoft Office (Word, Excel, Outlook и т.д.) 1 26-03-2012 03:07
2003/XP/2000 - excel таблица из другой excel таблицы sesves Microsoft Office (Word, Excel, Outlook и т.д.) 2 16-03-2012 01:24




 
Переход