方法或数据成员问题与我的Excel VBA代码

你好,我开始编程一个macros,并遇到一个错误,说明未find方法或数据成员,它指向我在代码中的以下行:

Set wsSheet = wsTPCC.Sheets("TPCC") 

我完全不知道为什么会发生这种情况,希望能够帮助我们解决这个问题,而且在编程的其他部分也是如此,因为这只是我的代码的开始。 这是整个代码以防万一。

 Option Explicit Sub TrainingHoursMacro() Dim wbTHMacro As Workbook, wsRegulares As Worksheet, wsRegularesDemitidos As Worksheet, wsTempActivos As Worksheet, wsTempJA As Worksheet, wsTempFit As Worksheet, _ wsTempDemitidos As Worksheet, wsPS As Worksheet, wsResultados As Worksheet, wsDLList As Worksheet, wsSheet As Worksheet Dim wbRegularesBruto As Workbook, wsMovimentacao As Worksheet, wsDemitidos As Worksheet Dim wbTemporariosBruto As Workbook, wsTemporariosAtivos As Worksheet, wsJAAtivos As Worksheet, wsAprendizesFit As Worksheet Dim wbPresenceSystem As Workbook, wsTPCC As Worksheet Set wbTHMacro = Workbooks("Training Hours Macro.xlsm") Set wsRegulares = wbTHMacro.Sheets("Regulares") wsRegulares.Cells.ClearContents Set wbRegularesBruto = Workbooks.Open(Filename:="H:\BX-HR\BX-INDUSTRIAL RELATIONS\HR REPRESENTATIVES\PRIVATE\HRSSC\Brazil\Training Hours Macro\Regulares Bruto.xls") If Not wbRegularesBruto Is Nothing Then Set wsSheet = wbRegularesBruto.Sheets("Movimentacao") wsSheet.Cells.Copy wsRegulares.Range("A1") Set wsSheet = wbRegularesBruto.Sheets("Demitidos") Set wsRegularesDemitidos = wbTHMacro.Sheets("Regulares Demitidos") wsSheet.Cells.Copy wsRegularesDemitidos.Range("A1") wbRegularesBruto.Close False Else Exit Sub End If Set wbTemporariosBruto = Workbooks.Open(Filename:="H:\BX-HR\BX-INDUSTRIAL RELATIONS\HR REPRESENTATIVES\PRIVATE\HRSSC\Brazil\Training Hours Macro\Temporarios Bruto.xlsx") If Not wbTemporariosBruto Is Nothing Then Set wsSheet = wbTemporariosBruto.Sheets("Temporarios Ativos") Set wsTempActivos = wbTHMacro.Sheets("Temp Activos") wsSheet.Cells.Copy wsTempActivos.Range("A1") Set wsSheet = wbTemporariosBruto.Sheets("JA Ativos") Set wsTempJA = wbTHMacro.Sheets("Temp JA") wsSheet.Cells.Copy wsTempJA.Range("A1") Set wsSheet = wbTemporariosBruto.Sheets("Aprendizes FIT") Set wsTempFit = wbTHMacro.Sheets("Temp Fit") wsSheet.Cells.Copy wsTempFit.Range("A1") Set wsSheet = wbTemporariosBruto.Sheets("Demitidos") Set wsTempDemitidos = wbTHMacro.Sheets("Temp Demitidos") wsSheet.Cells.Copy wsTempDemitidos.Range("A1") wbTemporariosBruto.Close False Else Exit Sub End If Set wbPresenceSystem = Workbooks.Open(Filename:="H:\BX-HR\BX-INDUSTRIAL RELATIONS\HR REPRESENTATIVES\PRIVATE\HRSSC\Brazil\Training Hours Macro\Presence System Bruto.xls") If Not wbPresenceSystem Is Nothing Then 'Set wsSheet = wsTPCC.Sheets("TPCC") Set wsPS = wbTHMacro.Sheets("PS") 'wsSheet.Cells.Copy wsTempActivos.Range("A1") Rows("1:1").Select Selection.Delete Shift:=xlUp Range("C1").Select ActiveCell.FormulaR1C1 = "CC" Columns("D:D").Select Selection.Insert Shift:=xlToRight Range("D1").Select ActiveCell.FormulaR1C1 = "MO" Range("A2").Select ActiveCell.FormulaR1C1 = "38697263859*" Columns("A:A").Select Selection.Replace What:="*", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Cells.Select With Selection .HorizontalAlignment = xlGeneral .VerticalAlignment = xlCenter .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Selection.RowHeight = 15 Range("A1").Select Selection.AutoFilter Sheets("TreimentosPorCentroDeCusto (5)").Select Sheets("TreimentosPorCentroDeCusto (5)").Name = "TPCC" Set wsSheet = wsTPCC.Sheets("TPCC") Set wsPS = wbTHMacro.Sheets("PS") wsSheet.Cells.Copy wsTempActivos.Range("A1") wbPresenceSystem.Close False Else Exit Sub End If End Sub 

以下是macros的代码,以防万一:

 Option Explicit Sub TrainingHoursMacro() Dim wbTHMacro As Workbook, wsRegulares As Worksheet, wsRegularesDemitidos As Worksheet, wsTempActivos As Worksheet, wsTempJA As Worksheet, wsTempFit As Worksheet, _ wsTempDemitidos As Worksheet, wsPS As Worksheet, wsResultados As Worksheet, wsDLList As Worksheet, wssheet As Worksheet Dim wbRegularesBruto As Workbook, wsMovimentacao As Worksheet, wsDemitidos As Worksheet Dim wbTemporariosBruto As Workbook, wsTemporariosAtivos As Worksheet, wsJAAtivos As Worksheet, wsAprendizesFit As Worksheet Dim wbPresenceSystem As Workbook, wsTPCC As Worksheet Dim wbFlexUTrainingHours As Workbook, wsHours As Worksheet, wsFlexU As Worksheet Dim rcell As Range Set wbTHMacro = Workbooks("Training Hours Macro.xlsm") Set wsRegulares = wbTHMacro.Sheets("Regulares") wsRegulares.Cells.ClearContents Set wbRegularesBruto = Workbooks.Open(Filename:="H:\BX-HR\BX-INDUSTRIAL RELATIONS\HR REPRESENTATIVES\PRIVATE\HRSSC\Brazil\Training Hours Macro\Regulares Bruto.xls") If Not wbRegularesBruto Is Nothing Then Set wssheet = wbRegularesBruto.Sheets("Movimentacao") wssheet.Cells.Copy wsRegulares.Range("A1") Set wssheet = wbRegularesBruto.Sheets("Demitidos") Set wsRegularesDemitidos = wbTHMacro.Sheets("Regulares Demitidos") wssheet.Cells.Copy wsRegularesDemitidos.Range("A1") wbRegularesBruto.Close False Else Exit Sub End If Set wbTemporariosBruto = Workbooks.Open(Filename:="H:\BX-HR\BX-INDUSTRIAL RELATIONS\HR REPRESENTATIVES\PRIVATE\HRSSC\Brazil\Training Hours Macro\Temporarios Bruto.xlsx") If Not wbTemporariosBruto Is Nothing Then Set wssheet = wbTemporariosBruto.Sheets("Temporarios Ativos") Set wsTempActivos = wbTHMacro.Sheets("Temp Activos") wssheet.Cells.Copy wsTempActivos.Range("A1") Set wssheet = wbTemporariosBruto.Sheets("JA Ativos") Set wsTempJA = wbTHMacro.Sheets("Temp JA") wssheet.Cells.Copy wsTempJA.Range("A1") Set wssheet = wbTemporariosBruto.Sheets("Aprendizes FIT") Set wsTempFit = wbTHMacro.Sheets("Temp Fit") wssheet.Cells.Copy wsTempFit.Range("A1") Set wssheet = wbTemporariosBruto.Sheets("Demitidos") Set wsTempDemitidos = wbTHMacro.Sheets("Temp Demitidos") wssheet.Cells.Copy wsTempDemitidos.Range("A1") wbTemporariosBruto.Close False Else Exit Sub End If Set wbPresenceSystem = Workbooks.Open(Filename:="H:\BX-HR\BX-INDUSTRIAL RELATIONS\HR REPRESENTATIVES\PRIVATE\HRSSC\Brazil\Training Hours Macro\Presence System Bruto.xls") If Not wbPresenceSystem Is Nothing Then Set wsPS = wbTHMacro.Sheets("PS") Rows("1:1").Select Selection.Delete Shift:=xlUp Range("C1").Select ActiveCell.FormulaR1C1 = "CC" Columns("D:D").Select Selection.Insert Shift:=xlToRight Range("D1").Select ActiveCell.FormulaR1C1 = "MO" Range("A2").Select ActiveCell.FormulaR1C1 = "38697263859 " For Each rcell In Range("A2:A" & Range("A" & Rows.Count).End(3)(1).Row) rcell.Value = Left(rcell, Len(rcell) - 1) 'rcell.Value = Trim(rcell) Next rcell Cells.Select With Selection .HorizontalAlignment = xlGeneral .VerticalAlignment = xlCenter .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Selection.RowHeight = 15 Range("A1").Select Selection.AutoFilter For Each wssheet In ActiveWorkbook.Worksheets If Left(wssheet.Name, 27) = "TreimentosPorCentroDeCustro" Then wssheet.Activate End If ActiveSheet.Name = "TPCC" Exit For Next wssheet Set wssheet = wbPresenceSystem.Sheets("TPCC") Set wsPS = wbTHMacro.Sheets("PS") wssheet.Cells.Copy wsPS.Range("A1") wbPresenceSystem.Close False Else Exit Sub End If Set wbFlexUTrainingHours = Workbooks.Open(Filename:="H:\BX-HR\BX-INDUSTRIAL RELATIONS\HR REPRESENTATIVES\PRIVATE\HRSSC\Brazil\Training Hours Macro\Flex U Training Hours.xls") If Not wbFlexUTrainingHours Is Nothing Then For Each wssheet In ActiveWorkbook.Worksheets If Left(wssheet.Name, 29) = "Training_Hours_12_37_24_PM 1 " Then wssheet.Activate End If ActiveSheet.Name = "Hours" Exit For Next wssheet Set wssheet = wbFlexUTrainingHours.Sheets("Hours") Set wsFlexU = wbTHMacro.Sheets("Flex U") wssheet.Cells.Copy wsFlexU.Range("A1") wbFlexUTrainingHours.Close False Else Exit Sub End If End Sub