Я продолжаю получать ошибку несоответствия типа в приведенном ниже коде (указанном рядом со строкой), что интересно, так это то, что макрос был запущен, но когда я отправил его себе по электронной почте на другом компьютере, он сломался. Есть идеи, как это исправить?
Чтобы дать фон, макрос предназначен для пользовательской формы, которая регистрирует проблемы на разных вкладках (в зависимости от того, в чем проблема). Когда проблема помечается как завершенная, она перемещается на вкладку «5. Завершено и проверено», где строке присваивается номер и добавляется столбец, в котором указывается, сколько дней потребовалось для выполнения задачи. Когда проблема перемещается из вкладки источника, она копируется, удаляется, а затем добавляется на вкладку 5. Завершено и подтверждено.
Option Explicit
Sub Complete()
Dim sourceWS As Worksheet
Set sourceWS = ActiveSheet
Dim destWS As Worksheet
Set destWS = ThisWorkbook.Worksheets("5. Complete & Verified")
Dim RowCountS, RowCountD As Long
Dim intLastRowSrc As Long
RowCountS = ActiveSheet.Rows.Count
intLastRowSrc = sourceWS.Cells(RowCountS, 1).End(xlUp) + 1'Type Mistmatch
Dim intLastRowSDes As Long
RowCountD = Worksheets("5. Complete & Verified").Rows.Count
intLastRowSDes = destWS.Cells(RowCountD, 2).End(xlUp) + 1 'Type Mismatch
Dim r As Long
Dim iRow2 As Long
iRow2 = Application.WorksheetFunction.CountA(Sheets("5. Complete & Verified").Range("B:B")) + 1
Dim iRow3 As Long
iRow3 = Application.WorksheetFunction.CountA(sourceWS.Range("A:A")) + 1
Dim LastRow4 As Long
Dim LastRow5 As Long
For r = intLastRowSrc To 2 Step -1
If sourceWS.Cells(r, "R") = "Complete & Verified" Then
intLastRowSDes = destWS.Cells(RowCountD, 2).End(xlUp) + 2
destWS.Range("C" & intLastRowSDes & ":S" & intLastRowSDes).Value = sourceWS.Range("B" & r & ":R" & r).Value
sourceWS.Rows(r).Delete
destWS.Cells(intLastRowSDes, 1) = sourceWS.Name ' Adding tab name as the Payer
destWS.Cells(iRow2, 2) = iRow2 - 1 ' Numbering the rows in order instead of copying number from payer tab
'Adding in Column for Days to Complete
Worksheets("5. Complete & Verified").Cells(2, 20) = "=IF(RC[-3]="""",0,RC[-3]-RC[-9])"
LastRow5 = Worksheets("5. Complete & Verified").Range("A1").End(xlDown).Row 'last row filled number row number not cell value 'need to copy before pasting
Worksheets("5. Complete & Verified").Range("T2").Copy
Worksheets("5. Complete & Verified").Range("T2" & ":" & "T" & LastRow5).PasteSpecial (xlPasteFormulas) 'paste formulas
Worksheets("5. Complete & Verified").Range("A1") = "Payor"
Worksheets("5. Complete & Verified").Range("A1") = "Payor"
Worksheets("5. Complete & Verified").Activate
Range("A1").Select
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 1
'Renumbering the No. Column on the Payer Tab
sourceWS.Activate
If IsEmpty(sourceWS.Range("A2")) = False Then
LastRow4 = Range("A1").End(xlDown).Row 'last row filled number row number not cell value 'need to copy before pasting
If (LastRow4 = 2) Then
sourceWS.Range("A2") = 1
Else
sourceWS.Range("A2") = "=ROW()-1"
sourceWS.Range("A2").Copy
sourceWS.Range("A2" & ":" & "A" & LastRow4).FillDown 'paste formula
End If
sourceWS.Calculate
sourceWS.Range("A2" & ":" & "A" & LastRow4).Copy
sourceWS.Range("A2" & ":" & "A" & LastRow4).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range("A2").Select
End If
End If
Next
Exit Sub
End Sub