.
как определить есть ли в ячейке формула или нет
16.04.2008 14:27:42
|
|
|
|
16.04.2008 14:33:16
:-)
тот ли это слэн? или поддельный... |
|
|
|
16.04.2008 14:34:40
формулой или макросом есс-но, не взглядом :)
|
|
|
|
16.04.2008 14:35:16
If Left(ActiveCell.Formula, 1) = "=" Then MsgBox 1
|
|
|
|
16.04.2008 14:37:51
а формулой нельзя?
|
|
|
|
16.04.2008 14:40:41
я почему-то подумал:
if .formula<>.text then понятно, что и то и то медленно, а что лучше? а как скомпилировать проект? |
|
|
|
16.04.2008 14:48:03
Application.VBE.VBProjects(1).MakeCompiledFile
как использовать |
|
|
|
16.04.2008 15:13:24
гугл вот что показывает
If Range("A1").HasFormula = True Then MsgBox "Ячейка содержит формулу" Else MsgBox "Ячейка не содержит формулы" End If |
|
|
|
16.04.2008 15:17:41
.HasFormula
|
|
|
|
16.04.2008 15:38:27
{quote}{login=слэн}{date=16.04.2008 02:48}{thema=}{post}Application.VBE.VBProjects(1).MakeCompiledFile
как использовать{/post}{/quote} Похоже это метод VB и в VBA он не работает, примеров не нашел , кроме вот этой ссылки, но там по англицки попроьывал приведенный код, VBA ругается |
|
|
|
16.04.2008 20:57:09
первый случай..
|
|
|
|
16.04.2008 22:20:44
{quote}{login=слэн}{date=16.04.2008 08:57}{thema=}{post}первый случай..{/post}{/quote}
--- Прилагается вполне универсальный вариант функции HasFormula(Refernce). --- ZVI |
|
|
|
17.04.2008 12:00:01
CTRL+'
и все формулы налицо |
|
|
|
17.04.2008 15:13:45
юзаем гуглю и мелкософт.ком и находим справку по этим функциям
|
|
|
|
17.04.2008 16:52:15
{quote}{login=Артем}{date=17.04.2008 02:06}{thema=Re: Re: как определить есть ли в ячейке формула или нет}{post}{quote}{login=ZVI}{date=16.04.2008 10:20}{thema=Re: как определить есть ли в ячейке формула или нет}{post}{quote}{login=слэн}{date=16.04.2008 08:57}{thema=}{post}первый случай..{/post}{/quote}
--- Прилагается вполне универсальный вариант функции HasFormula(Refernce). --- ZVI{/post}{/quote} а можно поподробнее описать процесс, как это получилось,а то ни в справке, ни в гугле подробного описания использованных функций не нашел{/post}{/quote} --- Использован Excel-макро-язык XLM, на котором программировали еше наши бабушки до того, как появился VBA. Функции, написанные таким образом, в рабочем пространстве книг и листов работают на порядок быстрее VBA-ных аналогов, так как не используется промежуточный и достаточно медленый OLE-транслятор между рабочим простанством таблиц и рабочим пространством VBA. Справку по функциям этого языка можно скачать отсюда: Но не без заморочек: нужно переименовать EXE в ZIP и архиватором извлечь CHM, т.к. самораспаковывается только, если установлен Excel 2000. Описаний правил програмирования на Excel-XLM я не видел, но о них несложно догадаться, если взглянуть на какие-нибудь примеры. Вопрос Слэна, на самом деле, очень интересный и тонкий, несмотря на напрашивающееся "тыкнуть и позырить" :) --- ZVI |
|
|
|
05.05.2008 22:00:02
зачем RэCэ.. просто мышкой тыкнуть, но деньги убрать..
:) интересно! спасибо, ZVI! |
|
|
|
05.05.2008 23:20:13
---
Ответ для DL. ФормулаСправа из post_16496.rar работает в русскоязычной версии, проверял в Excel 2002, 2003, 2007. Русскоязычная формула: =ПОЛУЧИТЬ.ЯЧЕЙКУ(48;Лист1!B2) Англоязычная формула: =GET.CELL(48,Лист1!B2) Используется функция, определенная именем: Named Defined Function (NDF) – придумалось такое вот название, по аналогии с VBA-ной User Defined Function (UDF). Принцип простой, его удобнее объяснить на простейшем примере: Допустим, для каждой ячейки диапазона C1:C10 нужна NDF, которая бы вычисляла сумму двух ячеек справа. Если пользоваться Excele-ем, то нужно было бы просто в C1 написать формулу: =D1+E1 и протянуть формулу до C10. Чтобы сделать то же самое с помощью NDF, нужно: 1. Активизировать C1 2. Через меню Вставить - Имя - Присвоить ввести имя NDF, например: CуммаСправа 3. В поле формула, ввести формулу, как рекомендовал Слэн: ткнуть мышкой в D1, добавить плюс и ткнуть в E1, затем аккуратно поудалять знак абсолютной ссылки $. Формула станет относительной и будет выглядеть так: =Лист1!D1+Лист1!E1 4. Теперь если где-либо на листе1 ввести формулу (удобнее через F3) =СуммаСправа то в этой ячейке появится сумма двух ячеек справа. Когда нужна NDF: 1. NDF позволяют использовать формулы макроязыка Excel 4.0 XML, которые не работают в обычных формулах ячеек. Примером может служить ФормулаСправа 2. NDF экономит память и улучшает читаемость формул. Пример здесь: post_14945.rar --- ZVI |
|
|
|
05.05.2008 23:29:14
---
Добавлю, что формула NDF привязана к конкретному листу, для другого листа можно создать другое имя с аналогичной формулой. Возможно, что проблема DL именно в этом. --- ZVI |
|
|
|
Читают тему