Ветеран
Сообщения: 2708
Благодарности: 1684
|
Профиль
|
Отправить PM
| Цитировать
Скрипт просматривает ячейки в указанном столбце и меняет значения в соответствии с указанными правилами
Код:
FileIn = "Z:\Box_In\34S_400139 - 404622_21222.xls" 'Имя файла
With WScript.Arguments
If .Count <> 0 Then FileIn = .Item(0)
End With
' Массив с парами заменяемых значений ("что","на что")
NRepl = Array("403001", "123001", _
"403013", "123013", _
"404622", "123622")
RangeIn = "B1" 'Адрес клетки c заголовком столбца
N1 = LBound(NRepl)
N2 = UBound(NRepl)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WShell = CreateObject("WScript.Shell")
On Error Resume Next
Set InBox = FSO.GetFile(FileIn)
If Err.Number <> 0 Then
LL = WShell.Popup("Файл" + vbCrLf + vbCrLf + FileIn + vbCrLf + vbCrLf + "Код ошибки " + CStr(Err.Number) + vbCrLf + Err.Description, 0, "Открытие папки", 16)
On Error GoTo 0
Else
With CreateObject("Excel.Application")
.Visible = True
' .Visible = False
On Error GoTo 0
Set XLbook = .Workbooks.Open(FileIn)
i = 0
Do
i = i + 1
iCell = Trim(CStr(.Range(RangeIn).Offset(i, 0)))
If Len(iCell) = 0 Then Exit Do
For j = N1 To N2 Step 2
If iCell = NRepl(j) Then
.Range(RangeIn).Offset(i, 0) = NRepl(j + 1)
Exit For
End If
Next
Loop
XLbook.Save
XLbook.Close
.Quit
End With
End If
MsgBox "Скрипт завершен"
Имя файла можно указать прямо в скрипте, либо сделать на скрипт значок на раб. столе и затягивать мышкой на него обрабатываемый файл, при этом имя явно указанного в скрипте файла будет проигнорировано.
|
-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.
Отправлено: 13:46, 23-05-2018
| #7
|