Показать полную графическую версию : [решено] Скрипт, который изменяет значение ячейки в Exсel
Добрый день. К нам поступают файлы с другой организации такие файлы например как 34S_1 - 999999_05.03.2018_28.xls 34S_400000 - 400138_05.03.2018_1.xls 34S_400139 - 404622_05.03.2018_25.xls . Этих файлов разное количество, бывает и 40 файлов бывает и 50 и т д.
Так выглядит структура xls файла:
num indexto region area city adres adresat mass value payment comment
4000 404131 ВОЛ ВОЛЖСКИЙ ул. МИРА, д. 61, кв. 45 Иванов Иван 0.02 0 0
Можно ли создать скрипт который изменяет ячейку adres на street? То есть переименовывает ячейку F1 на street
то есть структура файлов, которые к нам пришли одинакова, чтобы во всех этих excel файлов изменялась ячейка F1? Какой то фильтр создать чтобы скрипт изменял только в xls
Что то удалось сделать но не CMD а VBS. Но открыть я могу лишь один файл, как открыть сразу все файлы xls?
Dim oXL
Set oXL = WScript.CreateObject("Excel.Application")
oXL.Visible = false 'скрыть Excel
oXL.WorkBooks.Open("D:\IVC\Operators\Printer\1.xls") 'добавить существующую книгу - описание колонок
' ищем первую не заполненную строку
' левая верхняя ячейка имеет координаты 1,1 в MS Office и 0,0 в Open Office
Row = 1 ' с какой строки начинаем поиск
Col = 1 ' какую колонку проверять
a = oXL.Cells(Row, 1).Value ' читать значение ячейки 1 в строке Row
oXL.Cells(Row, 6).Value = "street" ' записать строковые данные в ячейку 2 в строке Row
oXL.Visible = true ' показать Excel
oXL.WorkBooks.Close
megaloman
21-03-2018, 16:02
ExtIn = "xls" 'Расширение Excel-файла
RangeIn = "F1" 'Адрес клетки
TxtIn = "street"
BoxIn = "Z:\Box_In" ' Папка с Excel-файлами
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WShell = CreateObject("WScript.Shell")
On Error Resume Next
Set InBox = FSO.GetFolder(BoxIn)
If Err.Number <> 0 Then
LL = WShell.Popup("Папка" + vbCrLf + vbCrLf + BoxIn + vbCrLf + vbCrLf + "Код ошибки " + CStr(Err.Number) + vbCrLf + Err.Description, 0, "Открытие папки", 16)
On Error GoTo 0
Else
Set XL = CreateObject("Excel.Application")
' XL.Visible = True
XL.Visible = False
On Error GoTo 0
Set AllFiles = InBox.Files
For Each File In AllFiles
XlsName = BoxIn + "\" + File.Name
If LCase(FSO.GetExtensionName(XlsName)) = LCase(ExtIn) Then
Set XLbook = XL.Workbooks.Open(XlsName)
XL.Range(RangeIn) = TxtIn
XLbook.Save
XLbook.Close
End If
Next
XL.Quit
End If
Файлы открываются поочереди
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC