14

Я пытаюсь просмотреть имя файла, над которым я работаю, в электронной таблице Excel, используя формулу. Например, если файл назывался workbook1.xlsx, я бы хотел, чтобы в ячейке A1 отображался «workbook1.xlsx».

Формула, которую дает справочный сайт Microsoft, не работает:http://office.microsoft.com/en-us/excel-help/insert-the-current-excel-file-name-path-or-worksheet-in- а-клеточно-HA010103010.aspx # BMinsert3

= MID(CELL("имя файла"), SEARCH("[", CELL("имя файла"))+1, SEARCH("]", CELL("имя файла"))- SEARCH("[", CELL("имя файла")«))- 1)

6 ответов6

14

Это работает здесь, я только что протестировал на Excel 2007 (XP) и Excel 2013 (Windows 8).

Сначала попробуйте =CELL("filename") чтобы помочь устранить неполадки.

  • Убедитесь, что вы сохранили свою книгу на диск. "Book1" не будет отображаться, если вы поместите формулу в новую несохраненную книгу.

  • Вы используете неанглийские региональные настройки на вашем компьютере? Некоторые языки требуют корректировки имен функций и синтаксиса формул (например, на французском языке запятые должны быть заменены точкой с запятой).

  • Вы на своем персональном компьютере или на рабочем месте? Если это рабочий компьютер, возможно, существуют ограничения прав пользователя, вызывающие проблемы.

Когда вы говорите "это не работает", можете ли вы быть более конкретным? Принимает ли он формулу как напечатанную? Ячейка пуста, показывая «# ЗНАЧЕНИЕ!", так далее? Что происходит, когда просто используется =CELL("filename")?

9

Обратите внимание, что =CELL("filename") дает вам путь к последней измененной книге / листу, так что если у вас открыто 2 рабочие книги, abc и xyz и ваша формула находится в abc, если вы в последний раз изменили значение в xyz, формула в abc отразит это и вернет xyz.xlsx

По этой причине обычно предпочтительно включать ссылку на ячейку (любую ссылку на ячейку), например

= CELL("имя файла", A1)

Использование этой версии означает, что вы получите только имя рабочей книги, в которой находится формула.

Вы можете использовать эту немного более короткую версию

=REPLACE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),1,FIND("[",CELL("filename",A1)),"")

1

Более простое решение:

В вашем файле Excel нажмите Alt+F11, чтобы открыть Microsoft Visual Basics for Applications (VBA). В VBA выберите Insert > Module и вставьте следующий код

Public Function GetMyProp(prop As String) As String
    GetMyProp = ThisWorkbook.BuiltinDocumentProperties(prop)
End Function

В вашей формуле типа файла Excel: =GetMyProp("Title") . Это покажет название вашего документа в выбранной ячейке.

1

Если вы используете Excel на голландском языке, вы должны использовать голландские имена функций и использовать точку с запятой вместо запятой:

=VERVANGEN(LINKS(CEL("filename");VIND.SPEC("]";CEL("filename"))-1);1;VIND.SPEC("[";CEL("filename"));"")

1

Я обнаружил, что это самая простая формула для возврата только имени файла :

=REPLACE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),1,FIND("[",CELL("filename",A1)),"")

or - created in VBA:

Formula = "=REPLACE(LEFT(CELL(""filename"",A1),FIND(""]"",CELL(""filename"",A1))-1),1,FIND(""["",CELL(""filename"",A1)),"""")"

Чтобы вернуть полный путь, это будет делать:

=SUBSTITUTE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),"[","")

or - created in VBA:

Formula = "=SUBSTITUTE(LEFT(CELL(""filename"",A1),FIND(""]"",CELL(""filename"",A1))-1),""["","""")"
1

У меня была такая же проблема (вставленная формула не сработала)! После того, как я , ; в формуле это сработало идеально.

= MID(CELL("имя файла"); SEARCH("["; CELL("имя файла"))+1; SEARCH("]"; CELL("имя файла"))- SEARCH("["; CELL("имя файла")«))- 1)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .