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

Показать сообщение отдельно

Ветеран


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

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


Цитата Vadikan:
удалит все столбцы со всех листов во всех книгах. »
«Все столбцы» — подходящие под условие столбцы B? Можно попробовать так:
читать дальше »
Код: Выделить весь код
Option Explicit

Const xlWorksheet = &HFFFFEFB9


Dim strFolder

Dim objFSO
Dim objFile

Dim objExcel
Dim objWorksheet


If WScript.Arguments.Count = 1 Then
	strFolder = WScript.Arguments.Item(0)
	
	Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
	
	If objFSO.FolderExists(strFolder) Then
		Set objExcel = WScript.CreateObject("Excel.Application")
		
		For Each objFile In objFSO.GetFolder(strFolder).Files
			Select Case LCase(objFSO.GetExtensionName(objFile.Name))
				Case "xls", "xlsx"
					With objExcel.Workbooks.Open(objFile.Path)
						For Each objWorksheet In .Sheets
							With objWorksheet
								If .Type = xlWorksheet Then
									With .Cells.Item(1, 2)
										If .Value = "Owner" Then
											.EntireColumn.Delete
										End If
									End With
								End If
							End With
						Next
						
						.Save
						.Close
					End With
				Case Else
					' Nothing to do
			End Select
		Next
		
		objExcel.Quit
		Set objExcel = Nothing
	Else
		WScript.Echo "Folder [" & strFolder & "] not found"
	End If
Else
	WScript.Echo "Usage: cscript.exe //nologo " & WScript.ScriptName & " <Folder>"
End If

WScript.Quit 0

* писалось под 2003-им Microsoft Excel, потому крайне рекомендую сначала опробовать «на свинках»;
* не рекурсивно.

Отправлено: 16:31, 07-12-2012 | #2