I would guess that it erred because your file was not saved? That often happens when you make normal assumptions during tests. You can check if saved by:
Msgbox Thisworkbook.Saved
String parsing like that only works if your file naming convention is as you expect. FSO will be the more robust method.
Sub ken()
Dim thisWbName As String, d As Integer
thisWbName = ThisWorkbook.FullName
d = InStrRev(thisWbName, ".")
Debug.Print Left(thisWbName, d - 1) & Format(Now, " yyyyddmm hhmmss") & Mid(thisWbName, d)
End Sub
Sub ken2()
Dim thisWbName As String, fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
thisWbName = ThisWorkbook.FullName
Debug.Print ThisWorkbook.Path & fso.GetBasename(thisWbName) & _
"\" & Format(Now, " yyyyddmm hhmmss.") & fso.GetExtensionName(thisWbName)
End Sub
Though ken2 would not error if file was not saved at least once, it will produce a non-useful string.