Это (скорее всего) не полный ответ на вашу проблему, но он может помочь вам определить, какая часть кода выдает ошибку.
У вас есть одна строка кода VBA:
src.Worksheets("Manutencao").Cells(last + 1, 6) = Application.ThisWorkbook.Worksheets(folha).Cells(cellsit, 32).Text 'duração
У этого есть много неявных переменных и объектов, которые код VBA должен сложить вместе.Хотя это не проблема сама по себе, она может усложнить решение проблем.
Я обычно избегаю подобных ошибок, создавая промежуточные переменные, которые помогают разделить каждый шаг.С вашей точки зрения, это будет выглядеть так:
Option Explicit
Sub test()
Dim thisWB As Workbook
Set thisWB = ThisWorkbook
Dim manutencaoWS As Worksheet
Dim folhaWS As Worksheet
Set manutencaoWS = thisWB.Sheets("Manutencao")
Set folhaWS = thisWB.Sheets(folha)
Dim lastRow As Long
Dim folha As String
Dim cellsit As Long
lastRow = manutencaoWS.Range("A65536").End(xlUp).Row
folha = manutencaoexp.Label27.Caption
cellsit = manutencaoexp.Label29.Caption
Dim folhaText As String
folhaText = folhaWS.Cells(cellsit, 32)
manutencaoWS.Cells(last + 1, 6) = folhaText
End Sub
Может показаться, что вы выполняете много дополнительных шагов, чтобы выполнить одну и ту же строку кода, но разбив каждый шаг, как этот, делаете его более читабельным.и понятно - и проще выделить ошибку.
Кроме того, пожалуйста всегда используйте Option Explicit
.