VBS脚本将多个Excel文件合并为一个

时间:2020-05-22 07:58:15

标签: excel

我需要使用VBS脚本将多个Excel文件合并为一个

此脚本会将您指定文件夹中的所有excel文件合并到一个主excel文件中

这是tutorial

search Stackoverflow

上产生的结果

在我的代码中,第32行出现错误

Object Required Cells

第32行

Set GetUsedRange = .Range(.Cells(1, 1), .Cells(.UsedRange.Row + .UsedRange.Rows.Count - 1, .UsedRange.Column + .UsedRange.Columns.Count - 1))

有什么主意吗?

我的下面的代码

strPathSrc = "D:\Type\XT"
strMaskSrc = "*.xls"
iSheetSrc = 1 
strPathDst = "D:\Type\XT\Merge_XT.xls" 
iSheetDst = 1

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
objExcel.Visible = False
For Each objItem In objItems
    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 + 1, 1).Select
    objSheetDst.Paste
    objWorkBookDst.Application.CutCopyMode = False
    objWorkBookSrc.Close
Next

Function GetUsedRange(objSheet)
    With objSheet
        Set GetUsedRange = .Range(.Cells(1, 1), .Cells(.UsedRange.Row + .UsedRange.Rows.Count - 1, .UsedRange.Column + .UsedRange.Columns.Count - 1)) '''LINE OF ERROR
    End With
End Function

0 个答案:

没有答案
相关问题