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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   Excel сбор данных с нескольких файлов (http://forum.oszone.net/showthread.php?t=282209)

Streamnewal 14-05-2014 06:39 2351177

Excel сбор данных с нескольких файлов
 
Вложений: 3
Есть столбец данных однотипный в нескольких файлах, причем с расширением txt. Их около 100 штук.
Столбцы расположены в одном и том же месте. Нужно разместить их последовательно друг за другом в одном файле, как в примере.
Текстовые файлы нормально открываются. с форматированием, только при использовании мастера текстов.

Iska 14-05-2014 23:20 2351574

На WSH, пробуйте:
читать дальше »
Код:

Option Explicit

Dim strSourceFolder

Dim objFile
Dim arrContent

Dim objExcel
Dim objWorkbook
Dim objWorksheet
Dim objRange
Dim i

If WScript.Arguments.Count = 1 Then
        strSourceFolder = WScript.Arguments.Item(0)
       
        With WScript.CreateObject("Scripting.FileSystemObject")
                If .FolderExists(strSourceFolder) Then
                        Set objExcel = Nothing
                       
                        For Each objFile In .GetFolder(strSourceFolder).Files
                                If LCase(.GetExtensionName(objFile.Name)) = "txt" Then
                                        If objExcel Is Nothing Then
                                                Set objExcel    = WScript.CreateObject("Excel.Application")
                                                Set objWorkbook  = objExcel.Workbooks.Add()
                                                Set objWorksheet = objWorkbook.Worksheets.Item(1)
                                                Set objRange    = objWorksheet.Range("C3")
                                        End If
                                       
                                       
                                        With .OpenTextFile(objFile.Path)
                                                arrContent = Split(.ReadAll(), vbCrLf)
                                                .Close
                                        End With
                                       
                                        objRange.Value = .GetBaseName(objFile.Name)
                                        objRange.Font.Bold = True
                                       
                                        For i= LBound(arrContent) To UBound(arrContent) - 1
                                                objRange.Offset(i + 1, 0).Value = Split(arrContent(i), vbTab)(1)
                                        Next
                                       
                                        Set objRange = objRange.Offset(0, 1)
                                End If
                        Next
                       
                        If Not objExcel Is Nothing Then
                                Set objRange    = Nothing
                                Set objWorksheet = Nothing
                               
                                objWorkbook.SaveAs .BuildPath(strSourceFolder, "Result.xls")
                                Set objWorkbook  = Nothing
                               
                                objExcel.Quit
                                Set objExcel    = Nothing
                        End If
                Else
                        WScript.Echo "Can't find source folder [" & strSourceFolder & "]."
                        WScript.Quit 2
                End If
        End With
Else
        WScript.Echo "Usage: cscript.exe //nologo " & WScript.ScriptName & " <Source folder>"
        WScript.Quit 1
End If

WScript.Quit 0


Можно просто перетащить папку с искомыми файлами на скрипт.

Streamnewal 15-05-2014 05:39 2351629

Спасибо. Буду пробовать.


Время: 22:35.

Время: 22:35.
© OSzone.net 2001-