In any case, if you are copying values only, then try to avoid using the clipboard. There is no point messing with the clipboard if any other developer has not cleared it etc. It also has no advantage over the below code:
Dim sheet as Object
sheet = GetWorkSheet(handle, workbook, worksheet) 'declare params
Dim arr as Object(,)
arr = sheet.Range(srcRangeString).Value2 'declare param srcRangeString
Dim destSheet as Object
destSheet = GetWorksheet(destHandle, destWorkbook, destWorksheet) 'declare params
Dim destRange as Object
destRange = destSheet.Range(startCell).Resize(arr.GetUpperbound(0), arr.getUpperBound(1)) 'declare param startCell to represent the top left destination cell
destRange.Value = arr 'one-stop value transfer from array to range
If you wanted to follow the code in the Excel VBO, then you could do instead:
.....
.....
destination.PasteSpecial(-4163) 'xlPasteValues