2013-06-10 20:29:02 +0000 2013-06-10 20:29:02 +0000
14
14
Advertisement

Как вставить имя текущего файла в Excel?

Advertisement

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

Формула, которую дает сайт помощи Microsoft, не работает http://office.microsoft. com/en-us/excel-help/insert-the-current-excel-file-namee-path-or-worksheet-in-a-cell-HA01010103010. aspx#BMinsert3

=MID(CELL(“имя файла”),SEARCH(“[”,CELL(“имя файла”))+1, SEARCH(“]”,CELL(“имя файла”))-SEARCH(“[”,CELL(“имя файла”))-1).

Advertisement
Advertisement

Ответы (6)

14
14
14
2013-06-10 20:42:32 +0000

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

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

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

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

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

Когда вы говорите “это не работает”, можете ли вы быть более конкретными? Принимает ли она формулу в том виде, в котором она набрана? Пустая ли ячейка, показывающая “#VALUE!” и т.д.? Что происходит при использовании только =CELL("filename")?

9
9
9
2013-06-10 23:35:14 +0000

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

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

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

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

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

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

2
Advertisement
2
2
2017-06-29 16:48:47 +0000
Advertisement

Я нашел, что это “простейшая” формула для возврата только filename:

=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)),"""")"

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

=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
1
1
2015-08-28 14:34:41 +0000

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

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

1
Advertisement
1
1
2015-01-09 16:11:13 +0000
Advertisement

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

=MID(CELL(“имя файла”);SEARCH(“[”;CELL(“имя файла”))+1; SEARCH(“]”;CELL(“имя файла”))-SEARCH(“[”;CELL(“имя файла”))-1).

1
1
1
2015-01-15 10:41:26 +0000

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

В вашем файле 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"). В выбранной ячейке появится заголовок документа.

Advertisement

Похожие вопросы

6
13
9
10
13
Advertisement