|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] копирование столбца из excel в другой excel |
|
|
CMD/BAT - [решено] копирование столбца из excel в другой excel
|
Пользователь Сообщения: 72 |
Добрый день имеются множество файлов ( пример прикрепил ). Можно ли как то из этих всех файлов вырезать только один столбец (NUM ) И чтоб нумерация из этих столбцов была полностью видна. То есть при нажатии скриптов создавались бы excel файлы только с Num столбцами. Эти файлы лежат на D:\Новая папка а экспорт новых excel файлов например на D:\Новая папка2
|
|
Отправлено: 11:15, 10-05-2018 |
Пользователь Сообщения: 72
|
Профиль | Отправить PM | Цитировать не нужно пустого столбца. Да. 7
|
Отправлено: 16:49, 10-05-2018 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать romfus, я сейчас отлучён от компьютера, не могу выдать решение, но лучше написать, например, vbs- скрипт, который последовательно откроет эксел-файлы, выделит в них нужную область и напечатает выделенное. Помнится, такая возможность в экселе была.
Либо создать пустой бланк для печати столбца, настроить параметры листа для аывода, макросом в этом бланке последовательно открывать ваши файлы, забирать нужную область и сразу пускать на печать, затем очищать напечатанное и т д..... Корёжить исходные файлы или делать кучу новых только для печати- плохая идея. Ведь цель всей возни - напечатать выделенные области из всех указанных файлов. |
------- Отправлено: 16:54, 10-05-2018 | #22 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать megaloman, ну, вроде бы уже решили, что корёжить не будем, сохранять не будем, будем токмо печатать. Осталось сообразить, как сие реализовать наиболее доступным образом
![]() |
Отправлено: 16:59, 10-05-2018 | #23 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Iska, пока я тыркал пальцем в планшет, у Вас состоялось бурное объяснение
![]() |
------- Отправлено: 17:02, 10-05-2018 | #24 |
Ветеран Сообщения: 27449
|
Профиль | Отправить 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 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|