4

我有这段代码,我在其中得到了一些帮助,但我遇到了一个问题,或者我认为是一个问题。最后一次查找,我被告知该对象不支持此属性或方法。我知道这可能很容易,但我的大脑正在闷烧。如果有人知道为什么会发生这种情况,我需要一些帮助。

谢谢。

Option Explicit

Sub Update_Dakota()

    Dim wsDAO As Worksheet              'Dakota OOR
    Dim wsDAD As Worksheet              'Dakota Data
    Dim wsDAR As Worksheet              'Dakota Archive
    Dim wsPOR As Workbook               'New Workbook
    Dim lastrow As Long, fstcell As Long
    Dim strFile As String, NewFileType As String, filename As String

    Set wsDAO = Sheets("Dakota OOR")
    Set wsDAD = Sheets("Dakota Data")
    Set wsDAR = Sheets("Dakota Archive")


    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
        .EnableEvents = False
    End With

    lastrow = wsDAD.Range("B" & Rows.Count).End(xlUp).Row + 1

    With wsDAD
        .Range("I2").Formula = "=COUNTIFS('Dakota OOR'!$B:$B,$A2,'Dakota OOR'!$D:$D,$C2, 'Dakota OOR'!$G:$G,$F2)"
        .Range("J2").Formula = "=IF(I2,""Same"",""Different"")"
        wsDAD.Range("I2:J2").Copy wsDAD.Range("I3:J" & lastrow)
        wsDAD.Range("I:J").Calculate
    End With


    strFile = Application.GetOpenFilename()
    NewFileType = "Excel Files 2007 (*.xls)"
    Set wsPOR = Application.Workbooks.Open(strFile)
    lastrow = wsPOR.Range("A" & Rows.Count).End(xlUp).Row + 1

    wsPOR.Range("A2:G" & lastrow).Select


End Sub
4

1 回答 1

7

错误在这里

lastrow = wsPOR.Range("A" & Rows.Count).End(xlUp).Row + 1

wsPOR 是工作簿而不是工作表。如果您正在使用该工作簿的“Sheet1”,那么试试这个

lastrow = wsPOR.Sheets("Sheet1").Range("A" & _
          wsPOR.Sheets("Sheet1").Rows.Count).End(xlUp).Row + 1

相似地

wsPOR.Range("A2:G" & lastrow).Select

应该

wsPOR.Sheets("Sheet1").Range("A2:G" & lastrow).Select
于 2012-09-05T19:46:00.060 回答