Excel VBA,最后一行的对象定义错误

时间:2018-06-04 13:44:40

标签: excel vba excel-vba excel-2010

任何人都可以找到任何错误吗?出于某种原因,当我添加last2时,它会给出对象定义的错误。

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim src As Workbook
' Abrir EXCEL
Set src = Workbooks.Open  
("U:\Mecânica\Produção\Manutenção_teste\TOA\manTOA.xlsm", True, False)
WS_Count = src.Worksheets.Count
For o = 1 To WS_Count
 src.Worksheets(o).Unprotect password:="projmanutencao"
Next o

last = src.Worksheets("Manutencao").Range("A65536").End(xlUp).Row
folha = manutencaoexp.Label27.Caption
last2 = src.Worksheets("saidas").Range("A65536").End(x1Up).Row
    ' Escrever Registos
If manutencaoexp.ComboBox4 = "" Then
MsgBox "Introduzir todos os dados"
GoTo fim
Else
   src.Worksheets("Manutencao").Cells(last + 1, 1) = Now()                                  'data
   src.Worksheets("Manutencao").Cells(last + 1, 2) = manutencaoexp.Label28.Caption          'nº equipamento
   src.Worksheets("Manutencao").Cells(last + 1, 3) = manutencaoexp.ComboBox5                'avaria
   src.Worksheets("Manutencao").Cells(last + 1, 4) = manutencaoexp.ComboBox4                'serviços
   src.Worksheets("Manutencao").Cells(last + 1, 5) = manutencaoexp.ComboBox7                'produtos
   src.Worksheets("Manutencao").Cells(last + 1, 6) = Application.ThisWorkbook.Worksheets(folha).Cells(Monitorform.ComboBox1.ListIndex + 2, 32).Text   'duração
   src.Worksheets("Manutencao").Cells(last + 1, 7) = manutencaoexp.TextBox2                 'operario
   src.Worksheets("Manutencao").Cells(last + 1, 8) = manutencaoexp.ComboBox6                'tipo de manutenção
   src.Worksheets("Manutencao").Cells(last + 1, 9) = manutencaoexp.TextBox3                 'quantidade
   src.Worksheets("saidas").Cells(last2 + 1, 1) = manutencaoexp.ComboBox7                   'código/produtos
    'manutencaoexp.Hide
    manutencaoexp.ComboBox7 = ""
    manutencaoexp.TextBox3 = ""
    MsgBox "Dados Introduzidos com sucesso"

End If

      For o = 1 To WS_Count
 src.Worksheets(o).Protect password:="projmanutencao"
 Next o

  Application.DisplayAlerts = False 'IT WORKS TO DISABLE ALERT PROMPT

 'SAVES FILE USING THE VARIABLE BOOKNAME AS FILENAME
 src.Save

 Application.DisplayAlerts = True 'RESETS DISPLAY ALERTS

' CLOSE THE SOURCE FILE.
src.Close True             ' FALSE - DON'T SAVE THE SOURCE FILE.
Set src = Nothing

    fim:
End Sub

我的问题是我想要运行

 src.Worksheets("saidas").Cells(last2 + 1, 1) = manutencaoexp.ComboBox7

但我在

上得到了na错误
last2 = src.Worksheets("saidas").Range("A65536").End(x1Up).Row 

除此之外一切都运行良好。

如果还有其他方法可以解决此错误,可能会添加其他按钮或其他内容。

1 个答案:

答案 0 :(得分:7)

last2 = src.Worksheets("saidas").Range("A65536").End(x1Up).Row

如果您仔细查看此行,您会注意到1

中实际上您的号码为L而不是End(x1Up)

怎么回事,我不知道。因此,将行更改为:

last2 = src.Worksheets("saidas").Range("A65536").End(xlUp).Row