VBA Excel-编译错误-属性使用无效

VBA Excel-编译错误-属性使用无效,excel,compiler-errors,vba,Excel,Compiler Errors,Vba,我是全新的,我的第一个剧本。因此,提前感谢您提供的任何帮助 几天后,我将收到来自我公司200多家分支机构的一系列调查。调查数据收集在单独的excel电子表格中 我正在尝试修改一个脚本,该脚本来自一个Microsoft网站,可以循环浏览所有电子表格,并将数据编译成单个电子表格 我得到的错误是:编译错误:属性的使用无效 这是我的密码: Sub MergeGTISurvey() Dim SurveySummary As Worksheet Set SurveySummary = Wor

我是全新的,我的第一个剧本。因此,提前感谢您提供的任何帮助

几天后,我将收到来自我公司200多家分支机构的一系列调查。调查数据收集在单独的excel电子表格中

我正在尝试修改一个脚本,该脚本来自一个Microsoft网站,可以循环浏览所有电子表格,并将数据编译成单个电子表格

我得到的错误是:编译错误:属性的使用无效

这是我的密码:

Sub MergeGTISurvey()
    Dim SurveySummary As Worksheet
    Set SurveySummary = Workbooks.Add(xlWBATWorksheet).Worksheets

    Dim FolderPath As String
    FolderPath = "C:\Users\dloots\mycompany\testsurveyfolder\"

    Dim NRow As Long
    NRow = 1

    Dim Filename As String
    Filename = Dir(FolderPath & "*.xl*")
    Do While Filename <> ""
        Dim WorkBk As Workbook
        Set WorkBk = Workbooks.Open(FolderPath & Filename)
        SurveySummary.Range("A" & NRow).Value = Filename

        Dim Sheet As Worksheets
        Set Worksheets = Sheet

        Dim SourceRange As Range
        Set SourceRange = WorkBk.Worksheets("Network").Range("B4:B16").Select

        Dim DestRange As Range
        Set DestRange = SurveySummary.Range("B" & NRow)
        Set DestRange = DestRange.Resize(SourceRange.Rows.Count, SourceRange.Columns.Count)
        DestRange.Value = SourceRange.Value

        NRow = NRow + DestRange.Rows.Count

        WorkBk.Close savechanges:=False

        Filename = Dir()
    Loop
Sub-MergeGTISurvey()
Dim调查摘要作为工作表
Set SurveySummary=Workbooks.Add(xlwbatsheet).工作表
将FolderPath设置为字符串
FolderPath=“C:\Users\dloots\mycompany\testsurveyfolder\”
暗淡无光
NRow=1
将文件名设置为字符串
Filename=Dir(FolderPath&“*.xl*”)
文件名“”时执行此操作
将WorkBk设置为工作簿
设置WorkBk=Workbooks.Open(文件夹路径和文件名)
SurveySummary.Range(“A”&NRow).Value=Filename
将图纸调整为工作表
设置工作表=工作表
将源范围变暗为范围
设置SourceRange=WorkBk。工作表(“网络”)。范围(“B4:B16”)。选择
变暗减小范围为范围
Set DestRange=SurveySummary.Range(“B”和NRow)
Set DestRange=DestRange.Resize(SourceRange.Rows.Count、SourceRange.Columns.Count)
DestRange.Value=SourceRange.Value
NRow=NRow+DestRange.Rows.Count
WorkBk.Close savechanges:=False
Filename=Dir()
环

这是您的代码的修改版本。你可以试试看。 您可能仍然需要修改某些范围

Sub MergeGTISurvey()
    Dim SurveySummary As Workbook
    Set SurveySummary = Workbooks.Add(xlWBATWorksheet)

    Dim SurveySummarySheet As Worksheet
    Set SurveySummarySheet = SurveySummary.ActiveSheet


    Dim FolderPath As String
    FolderPath = "C:\Users\dloots\mycompany\testsurveyfolder\"

    Dim NRow As Long
    NRow = 1

    Dim Filename As String
    Filename = Dir(FolderPath & "*.xl*")
    Do While Filename <> ""
        Dim WorkBk As Workbook
        Set WorkBk = Workbooks.Open(FolderPath & Filename)
        SurveySummarySheet.Range("A" & NRow).Value = Filename

        Dim Worksht As Worksheet
        Set Worksht = WorkBk.Worksheets("Network")

        Worksht.Range("B4:B16").Copy
        SurveySummarySheet.Range("B" & CStr(NRow)).PasteSpecial

        ' This will get last row after paste
        NRow = SurveySummarySheet.Cells.SpecialCells(xlLastCell).Row + 1

        WorkBk.Close savechanges:=False

        Filename = Dir()
    Loop
End Sub
Sub-MergeGTISurvey()
Dim Survey摘要作为工作簿
Set SurveySummary=Workbooks.Add(xlWBATWorksheet)
Dim测量汇总表作为工作表
设置SurveySummarySheet=SurveySummary.ActiveSheet
将FolderPath设置为字符串
FolderPath=“C:\Users\dloots\mycompany\testsurveyfolder\”
暗淡无光
NRow=1
将文件名设置为字符串
Filename=Dir(FolderPath&“*.xl*”)
文件名“”时执行此操作
将WorkBk设置为工作簿
设置WorkBk=Workbooks.Open(文件夹路径和文件名)
SurveySummarySheet.Range(“A”&NRow).Value=Filename
将工作表设置为工作表
设置Worksht=WorkBk.工作表(“网络”)
工作目录范围(“B4:B16”)。副本
测量汇总表范围(“B”和CStr(NRow)).特殊粘贴
'这将获得粘贴后的最后一行
NRow=调查汇总表.单元格.特殊单元格(xlLastCell).行+1
WorkBk.Close savechanges:=False
Filename=Dir()
环
端接头

您知道哪行代码会导致错误吗?如果是,请让我们知道。错误是
Set Worksheets=Sheets
,因为工作表不是变量<代码>工作表是一个变量。它应该类似于
Dim Sheet As Worksheet”和
Set Sheet=WorkBk.Sheets(0)`但您似乎缺少从工作簿检索所有工作表的循环。谢谢@我做了建议的更改。现在我得到了一个“运行时错误”9:这里的下标超出范围:
Set SurveySummary=Workbooks.Add(xlwbatsheet)。工作表(0)
在定义一个变量对象然后分配另一个变量对象时,代码中的前两行将不起作用。将前两行替换为<代码>Dim SurveySummary作为工作簿集SurveySummary=工作簿。添加(XLWBATWORKEM)Dim SurveySummary Sheet作为工作表集SurveySummary Sheet=SurveySummary。工作表(1)
。在下面的代码中,您需要引用SurveySummarySheet。@Doug。。您从哪里获得示例代码?在你的代码中有很多问题。