If you have a lot of formulas to convert to values, it would probably be faster for the macro to copy the workbook, change columns B and C as I did, and then work from there. That would also eliminate the extra save.

If don't have a lot of data, this change to Paul's routine should suffice.

Private Sub CopySheet(ws As Worksheet)    
  Dim sFile As String, r As Range
    
    sFile = ws.Parent.Path & Application.PathSeparator & Format(Date, "yyyy-mm") & " " & ws.Range("B2").Text
    
    ws.Copy
    With ActiveWorkbook
      .SaveAs sFile, xlOpenXMLWorkbook
      Set r = Intersect(.Worksheets(1).UsedRange, .Worksheets(1).Columns("B:C"))
      r.Value = r.Value
      .Save
      .Close
    End With
    
    ThisWorkbook.Activate
End Sub