您好,我开始编写一个宏,遇到一个错误,说明找不到方法或数据成员,并将我指向代码中的以下行:
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
发布于 2014-06-03 02:49:48
下面是宏的代码,以防万一:
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
https://stackoverflow.com/questions/23994947
复制相似问题