У меня есть 8 документов в папке, и я намерен создать 2 отдельных документа. 1-й документ с именем файла "содержит" '_B'; другие 4 документа без "_B". Я создаю код для объединения всех файлов, но необходимо реализовать это условие. Срочное требование, пожалуйста, помогите.
Кодовый файл
strPathSrc = "D:\testing pleae delete\test" ' Source files folder
strMaskSrc = "*.xlsx " ' Source files filter mask
iSheetSrc = 1 ' Sourse sheet index or name
strPathDst = "C:\Users\Admin\Desktop\sample1.xlsx" ' Destination file
iSheetDst = 1 ' Destination sheet index or name
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkBookDst = objExcel.Workbooks.Open(strPathDst)
Set objSheetDst = objWorkBookDst.Sheets(iSheetDst)
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace(strPathSrc)
Set objItems = objFolder.Items()
' objItems.Filter 64 + 128, strMaskSrc
objExcel.DisplayAlerts = False
' For Each objItem In objItems
' Wscript.Echo objItem.Path
' Wscript.Echo objItem.type
' Next
For Each objItem In objItems
If objItem.type = "Microsoft Excel 97-2003 Worksheet" Or objItem.type = "Microsoft Office Excel 97-2003 Worksheet" Or objItem.type = "Microsoft Excel Worksheet" Or objItem.type = "Microsoft Excel Macro-Enabled Worksheet" Then
Set objWorkBookSrc = objExcel.Workbooks.Open(objItem.Path)
Set objSheetSrc = objWorkBookSrc.Sheets(iSheetSrc)
GetUsedRange(objSheetSrc).Copy
Set objUsedRangeDst = GetUsedRange(objSheetDst)
iRowsCount = objUsedRangeDst.Rows.Count
objWorkBookDst.Activate
objSheetDst.Cells(iRowsCount + 2, 1).Select
objSheetDst.Paste
objWorkBookDst.Application.CutCopyMode = False
objWorkBookSrc.Close
End If
Next
Function GetUsedRange(objSheet)
With objSheet
' Wscript.Echo ".UsedRange.Row"
' Wscript.Echo .UsedRange.Row
' Wscript.Echo ".UsedRange.Rows.Count"
' Wscript.Echo .UsedRange.Rows.Count
' Wscript.Echo ".UsedRange.Column"
' Wscript.Echo .UsedRange.Column
' Wscript.Echo ".UsedRange.Columns.Count"
' Wscript.Echo .UsedRange.Columns.Count
Set GetUsedRange = .Range(.Cells(2, 1), .Cells(.UsedRange.Row + .UsedRange.Rows.Count - 1, .UsedRange.Column + .UsedRange.Columns.Count - 1))
End With
Wscript.Echo "============================"
End Function
objSheetDst.Rows("1:3").EntireRow.Delete