Как получить адрес диапазона, включающий имя рабочего листа, но не имя рабочей книги, в Excel VBA?
Если у меня есть объект диапазона-например, предположим, что он ссылается на ячейку A1 на листе с именем Book1 . Поэтому я знаю, что вызов Address() даст мне простую местную справку: $A$1 . Я знаю, что его также можно назвать Address(External:=True) , чтобы получить ссылку, включающую имя рабочей книги и имя рабочего листа: [Book1]Sheet1!$A$1 .
Что я хочу, так это получить адрес, включающий название листа, но не название книги. Я действительно не хочу вызывать Address(External:=True) и пытаться самостоятельно вычеркнуть имя книги с помощью строковых функций. Есть ли какой-нибудь звонок, который я могу сделать по диапазону, чтобы получить Sheet1!$A$1 ?
11 ответов
Единственный способ, который я могу придумать, — это связать имя рабочего листа со ссылкой на ячейку следующим образом:
если вы хотите, чтобы он работал, даже если в названии листа есть пробелы или другие забавные символы.
Это решение позволяет Excel иметь дело с пробелами и другими забавными символами в названии листа, что является хорошим преимуществом по сравнению с предыдущими ответами.
возвращает ровно «Sheet1!$A$1», с объектом Range с именем rng , ссылающимся на ячейку A1 на листе Sheet1.
Это решение возвращает только адрес первой ячейки диапазона, а не адрес всего диапазона («Sheet1!$A$1» против «Sheet1!$A$1:$B$2»)., поэтому я использую его в пользовательской функции:
Бен прав. Я также не могу придумать никакого способа сделать это. Я бы предложил либо метод, который рекомендует Бен,либо следующий, чтобы удалить имя книги.
Я обнаружил, что следующее работает для меня в пользовательской функции, которую я создал. Я объединил ссылку на диапазон ячеек и имя рабочего листа в виде строки, а затем использовал в инструкции Evaluate (я использовал Evaluate в Sumproduct).
Я пытаюсь настроить лист excel, который будет иметь выпадающее окно в ячейке вверху, которое будет содержать различные варианты рабочего листа, доступные из моей рабочей книги. Как только я выбираю рабочий лист, мне нужно, чтобы на это имя рабочего листа ссылались во многих различных формулах.
В Excel году я определил два имени. Оба имеют одно и то же имя, но различную область применения и значение. Один из них ограничен листом, другой-рабочей книгой. Я не могу получить имя в области действия книги ни в Формуле ячейки, ни в VBA. в VBA, следующие возвращает лист с областью действия.
Возможно, вам потребуется написать код, который обрабатывает диапазон с несколькими областями, что и происходит:
Почему бы просто не вернуть имя рабочего листа с адресом = cell.Worksheet.Name , тогда вы можете снова объединить адрес, как этот адрес = cell.Worksheet.Name & «!» & cell.Address
Если это не так, почему критерии .. избегают функций Str
вероятно, это займет меньше миллисекунды и будет использовать 153 уже использованных электрона
As Мика отметил, что это работает только тогда, когда вы назвали этот
диапазон particular (следовательно, .Name кто-нибудь?) Да, упс!
Немного поздно на вечеринку, я знаю, но в случае, если кто-то еще поймает это в поиске Google (как я только что сделал), вы также можете попробовать следующее:
Это должно вернуть полный адрес, что-то вроде «=Sheet1!$A$1».
Предполагая, что вам не нужен знак равенства, вы можете удалить его с помощью функции замены:
Похожие вопросы:
Как я могу проверить имя рабочего листа или книги, внутри которой выполняется макрос VBA? Для использования в качестве условного оператора (если workbook/worksheet name = , то . ).
Когда я использую excel для открытия файла .txt (файла Блокнота), имя рабочего листа-это имя файла Блокнота, открытого по умолчанию. Таким образом, имя листа будет отличаться при открытии другого.
Я использую Excel Interop для создания файла excel и вывода в него данных, и я хочу изменить имя рабочего листа на основе выбора пользователя из comboBox. Однако я не могу получить входные данные от.
Я пытаюсь настроить лист excel, который будет иметь выпадающее окно в ячейке вверху, которое будет содержать различные варианты рабочего листа, доступные из моей рабочей книги. Как только я выбираю.
В Excel году я определил два имени. Оба имеют одно и то же имя, но различную область применения и значение. Один из них ограничен листом, другой-рабочей книгой. Я не могу получить имя в области.
Я пытаюсь автоматически отформатировать, как выглядит нижняя часть страницы Excel, чтобы автоматически просмотреть все имя рабочего листа. По умолчанию половина имени листа обрезается, так как.
Теперь у меня есть немного кода, который предлагает пользователю выбрать диапазон (1 область, 1 столбец, несколько строк). Это код, в котором он предлагает пользователю сделать это: MsgBox Select a.
[expert_bq id=»1570″]Как показала практика, если этот макрос не работает — не пересчитывает ячейки или пишет нечто вроде знач , то у Вас обнаружена циклическая ссылка и Excel не хочет пересчитывать значения. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] При выполнении тех или иных действий Excel может запрашивать подтверждения. Например при удалении листа, закрытии файла с несохраненными данными и (!) при проведении операции для которой Excel’y нехватает памяти для Undo. Для подавления этих сообщений используйте Application.DisplayAlerts: Любопытный ход- можно сказать Excel что файл якобы сохранен и тогда он не станет возражать против его закрытия. Назначение макро на горячую клавишуСоздание и именование рабочего листа в Excel VBA — CodeRoad
- Откройте рабочую книгу Excel
- Нажмите Alt + F11, чтобы открыть редактор VBA.
- Вставьте новый модуль из меню «Вставка»
- Создайте приведенный выше код и вставьте в окно кода
- Нажмите F5, чтобы увидеть выход
- Вы должны увидеть недавно открытую книгу, как показано выше.
- Сохраните файл в виде макросъемки
Вы также можете использовать описанную выше технику для листов, которые даже не являются активными. Например, если я сейчас нахожусь на Sheet1 и хочу удалить Shee3, я могу просто щелкнуть правой кнопкой мыши Sheet3 и удалить его.
Как на VBA сохранить файл Excel с названием, взятым из ячейки? | — IT-блог для начинающих
[expert_bq id=»1570″]Тип сведений обязательный аргумент текстовое значение, задающее тип сведений о ячейке например, адрес, столбец, цвет, имяфайла, формат, скобки и т. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] У каждого листа есть название. В одной книге Excel может быть 256 листов. Как использовать имя листа в Excel, чтобы упростить расчеты для множества листов? Например, вам нужно собрать сумму определенного столбца формулой со всех листов, как использовать имя листа в Excel для сбора данных? Ниже предлагаю описание этой возможности табличного редактора.Примечание. В этом уроке я буду использовать слова «лист» и «рабочий лист» как синонимы. Но чтобы сказать вам разницу, листы будут включать в себя рабочие листы, а также листы диаграмм, но поскольку листы диаграмм Excel не так широко используются, всякий раз, когда я использую слово лист, рассматривайте его как лист.
Вставка только текущего имени файла
В Excel году я определил два имени. Оба имеют одно и то же имя, но различную область применения и значение. Один из них ограничен листом, другой-рабочей книгой. Я не могу получить имя в области действия книги ни в Формуле ячейки, ни в VBA. в VBA, следующие возвращает лист с областью действия.