@xlnitwit,

Toggling Calculation Mode will have a significant impact, and I believe you could tweak your Code as shown below;

Sub MainToOFBc()
Dim dataSet
Dim r As Range
Set r = Sheet8.Range("G5")
If r.Value > 0 Then
ThisWorkbook.Activate
Dim sh1 As Worksheet
Dim LR As Long
LR = Range("B" & Rows.Count).End(xlUp).Row

Set sh1 = ActiveWorkbook.Worksheets("OF BC")
   Windows("Of_Bc.xlsb").Activate
On Error Resume Next
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With sh1
    dataSet = Application.Index(.Range("A:K"), .Evaluate("ROW(10:" & LR & ")"), Array(6, 1, 3, 8, 10, 9, 4, 11))
End With
    Range("C2").Resize(UBound(dataSet, 1), UBound(dataSet, 2)).Value = dataSet
    Range("M2").Resize(UBound(dataSet, 1)).Value = sh1.Range("B10:B" & LR).Value
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Else
Exit Sub
End If

End Sub
Regards.