Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Скрипт, который изменяет значение ячейки в Exсel (http://forum.oszone.net/showthread.php?t=333884)

romfus 21-03-2018 14:02 2804641

Скрипт, который изменяет значение ячейки в 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

romfus 21-03-2018 14:04 2804642

то есть структура файлов, которые к нам пришли одинакова, чтобы во всех этих excel файлов изменялась ячейка F1? Какой то фильтр создать чтобы скрипт изменял только в xls

romfus 21-03-2018 15:53 2804655

Что то удалось сделать но не 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 2804657

Если надо, чтобы во всех XLS-файлах в указанной папке в указанной ячейке было записано указанное содержимое, вот vbs-скрипт
Код:

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

Файлы открываются поочереди

romfus 21-03-2018 16:23 2804666

Спасибо, то что нужно


Время: 19:51.

Время: 19:51.
© OSzone.net 2001-