Для Workbook можно использовать VBA:
ActiveSheet.Range("E1").Value = Left(ActiveWorkbook.Name, 6)
Или вы можете просто использовать формулу в E1
, такую как:
=MID(CELL("filename"),FIND("[",CELL("filename"))+1,6)
Для имени Worksheet , если вам нужны первые 6 символов, вы можете использовать VBA:
ActiveSheet.Range("F1").Value = Left(ActiveSheet.Name, 6)
и эквивалентная формула будет:
=MID(CELL("filename"),FIND("]",CELL("filename"))+1,6)
Примечание: обе формулы Excel требуют, чтобы файл был сохранен хотя бы один раз для правильной работы.
Хотя, просматривая ваш код, один из способов исправить это - использовать Val
для преобразования строки из 6 символов в значение, которое может храниться в Long
.
Sub WorksheetDateName()
Dim DateName As String, OnlyDate As Long
DateName = ActiveWorkbook.Name
OnlyDate = Val(Left(DateName, 6))
ActiveSheet.Range("G1").Value = OnlyDate
End Sub
Вы также заметите, что я изменил ActiveWorksheet
на Activesheet
- как предлагали другие комментарии.