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

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

Ветеран


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

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


Ну, смотрите:
Скрытый текст
Код: Выделить весь код
Option Explicit

'Const READYSTATE_COMPLETE = 4


'Dim objIE

Dim objRange
Dim arrRow

Dim boolIsFirstRow
Dim i


With WScript.CreateObject("Excel.Application")
	With .Workbooks.Open("C:\Мои проекты\0244\ip-collector-025.xlsx")
		With .Worksheets.Item(1)
			If .AutoFilterMode Then
				boolIsFirstRow = True
				
				For Each objRange In .AutoFilter.Range.Rows
					If boolIsFirstRow Then
						boolIsFirstRow = False
						
						arrRow = .Application.Transpose(.Application.Transpose(objRange.Value2))
						
						WScript.Echo Join(arrRow, vbTab)
						WScript.Echo "--------------------------"
					Else
						arrRow = .Application.Transpose(.Application.Transpose(objRange.Value2))
						
						WScript.Echo Join(arrRow, vbTab)
						
						'For i = LBound(arrRow) To UBound(arrRow)
						'	WScript.Echo arrRow(i)
						'Next
					End If
				Next
			Else
				WScript.Echo "Probably no Autofilter in first worksheet in this workbook."
			End If
		End With
		
		.Close
	End With
	
	.Quit
End With

'Set objIE    = WScript.CreateObject("InternetExplorer.Application")
'
'With objIE
'	.Visible = False
'	.Navigate "http://admin:password@10.37.167.114/chgpassw.htm"
'	
'	Do
'		WScript.Sleep 100
'	Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE
'	
'	
'	With .Document.forms("frm")
'		.elements("user_no").value = "130"
'		
'		.submit()
'	End With
'	
'	Do
'		WScript.Sleep 100
'	Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE
'	
'	With .Document.forms("frm")
'		.elements("oldpassw").value = "password"
'		.elements("newpassw1").value = "Passwordnew"
'		.elements("newpassw2").value = "Passwordnew"
'		
'		.submit()
'	End With
'	
'	.Visible = True
'End With
'
'Set objIE = Nothing

WScript.Quit 0

Содержимое столбцов будет построчно появляться в массиве arrRow(). Что есть что на Рабочем листе — смотрите сами, мне мало о чём говорят поля site и service. Примерный облагороженный вид Вашего кода — под комментариями.

Запись в файл простая — создали (или открыли для добавления и пишете, в конце — закрываете. Например, запишем всё содержимое рабочего листа в текстовый файл:
Скрытый текст
Код: Выделить весь код
Option Explicit

'Const READYSTATE_COMPLETE = 4


'Dim objIE

Dim objRange
Dim arrRow

Dim boolIsFirstRow
Dim i

Dim objFSO
Dim objTS


Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

With WScript.CreateObject("Excel.Application")
	With .Workbooks.Open("C:\Мои проекты\0244\ip-collector-025.xlsx")
		With .Worksheets.Item(1)
			If .AutoFilterMode Then
				boolIsFirstRow = True
				
				Set objTS = objFSO.CreateTextFile("C:\Мои проекты\0244\ip-collector-025.csv", True)
				
				For Each objRange In .AutoFilter.Range.Rows
					If boolIsFirstRow Then
						boolIsFirstRow = False
						
						arrRow = .Application.Transpose(.Application.Transpose(objRange.Value2))
						
						WScript.Echo Join(arrRow, vbTab)
						WScript.Echo "--------------------------"
						
						objTS.WriteLine Join(arrRow, ",")
					Else
						arrRow = .Application.Transpose(.Application.Transpose(objRange.Value2))
						
						WScript.Echo Join(arrRow, vbTab)
						objTS.WriteLine Join(arrRow, ",")
					End If
				Next
				
				objTS.Close
				Set objTS = Nothing
			Else
				WScript.Echo "Probably no Autofilter in first worksheet in this workbook."
			End If
		End With
		
		.Close
	End With
	
	.Quit
End With

'Set objIE    = WScript.CreateObject("InternetExplorer.Application")
'
'With objIE
'	.Visible = False
'	.Navigate "http://admin:password@10.37.167.114/chgpassw.htm"
'	
'	Do
'		WScript.Sleep 100
'	Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE
'	
'	
'	With .Document.forms("frm")
'		.elements("user_no").value = "130"
'		
'		.submit()
'	End With
'	
'	Do
'		WScript.Sleep 100
'	Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE
'	
'	With .Document.forms("frm")
'		.elements("oldpassw").value = "password"
'		.elements("newpassw1").value = "Passwordnew"
'		.elements("newpassw2").value = "Passwordnew"
'		
'		.submit()
'	End With
'	
'	.Visible = True
'End With
'
'Set objIE = Nothing

WScript.Quit 0

Мне, правда, не очень понятно, зачем писать именно в текстовый файл, чтобы открывать его потом в Excel, вместо того, чтобы зараз писать непосредственно в Рабочую книгу Excel, коль мы так и так Excel пользуем в коде.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:00, 13-02-2019 | #13