Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: VBA MS Office

Программирования для MS Office кроме ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как определить - ячейка с данными или ссылка?
 
 автор: akoulev   (30.11.-1 в 00:00)
 
 

Пример: A1=4

B1=A1

B2=4

Смотрим на столбец B: и в 1-й, и во 2-й строке наблюдаем 4. Но: одна четвёрка := "честные данные"; а другая четвёрка - результат ссылки на ячейку A1.

Внимание, вопрос: какую ОДИНАКОВУЮ функцию прописать в ячейках С1 и С2 (где С1 "смотрит" на B1, а С2 "смотрит" на B2) - чтобы в С1 и С2 было хоть какое-то отличие? Сие нужно для анализа - где я уже перевёл огромную (в моём мировосприятии :) ) таблицу на "автоматику" - ну, сделал ссылки; а где - ещё нет.

  Ответить  
 
 автор: osmor   (30.11.-1 в 00:00)
 
 

меню "сервис"-"параметры"-"вид" - "параметры окна"- галочка формулы

  Ответить  
 
 автор: akoulev   (30.11.-1 в 00:00)
 
 

Огромное спасибо!!! Именно то, что нужно! Вовсю использую! (-) Огромное спасибо!!! Именно то, что нужно! Вовсю использую!

  Ответить  
 
 автор: ??????   (30.11.-1 в 00:00)
 
 

Re: Как определить - ячейка с данными или ссылка?

  Ответить  
 
 автор: vkodor   (30.11.-1 в 00:00)
 
 

Re[1]: Как определить - ячейка с данными или ссылка? меню "ПРАВКА" - > "ПЕРЕЙТИ" - > "ВЫДЕЛИТЬ" - > формулы

  Ответить  
 
 автор: vkodor   (30.11.-1 в 00:00)
 
 

Re[2]: Как определить - ячейка с данными или ссылка? Пользовательская функция alt+F11
меню "Insert" - > "Module"
скопируй туда это
Public Function formula(rng As Range) As Boolean
If Left(rng.formula, 1) = "=" Then formula = True
End Function
а потом в ячейке пишишь функцию "=formula(ячейка)"
вернёт "истина" если в "ячейка" будет формула

  Ответить  
 
 автор: pashulka   (30.11.-1 в 00:00)
 
 

Re[1]: Как определить - ячейка с данными или ссылка? Пользовательская функция Интересно, что движет людьми, которые предлагают дрянные, а порой и нерабочие вариантишки. Во-первых, для определения наличия формулы не нужно использовать пользовательские функции, так как это решается легко и просто с использованием именованных формул, во-вторых, для определения формулы есть свойство .HasFormula, а в предложенном "решении" UDF будет возвращать ИСТИНА если ячейка содержит =БРЕД или =100+5 хотя ни текст, ни формула не являются ссылкой.

  Ответить  
 
 автор: vkodor   (30.11.-1 в 00:00)
 
 

Re[1]: Как определить - ячейка с данными или ссылка? Пользовательская функция Интересно, что движет людьми, которые предлагают дрянные, а порой и нерабочие вариантишки.
стремление жить и позновать, и еще думать, а не хамить.
человеку нужно проблему решить. а не читать типа "во-первых, да во-вторых"
написал бы как правильно хамская всезнайка

  Ответить  
 
 автор: vkodor   (30.11.-1 в 00:00)
 
 

Re[1]: Как определить - ячейка с данными или ссылка? Пользовательская функция .HasFormula предложенный pashulka-ой также работает не корректно
так что ты вовсе не всезнайка, а просто хам

  Ответить  
 
 автор: pashulka   (30.11.-1 в 00:00)
 
 

Re[1]: Как определить - ячейка с данными или ссылка? Пользовательская функция Где критерии и примеры некорректности применения свойства .HasFormula ? Если Вы намекаете на то, что это свойство не разделяет формул на ссылки и прочее, то я сразу говорил о определении формулы, без применения к данному конкретному вопросу.

  Ответить  
 
 автор: pashulka   (30.11.-1 в 00:00)
 
 

Re[1]: Как определить - ячейка с данными или ссылка? Пользовательская функция 1. Стремление жить, познавать - отнюдь не означает необходимость использовать форум и людей, которые хотят получить квалифицированный и грамотный ответ (а такой ответ дал настоящий специалист osmor) в качестве подопытных и скармливать им действительно дрянные вариантишки, ибо как ещё можно назвать "правильный ответ" [http://www.hiprog.com/forum/forum.asp?action=show&id=10&messid=111806&fullview=0] который в действительности не имеет никакого отношения к поставленному вопросу.
2. Насчёт думать - это весьма спорный вопрос. С другой стороны, трактовка термина думать, у разных людей наверное различается … С моей стороны - это означает внимательно прочитать все предыдущие сообщения, взвесить все за и против и публиковать свой ответ только при условии, что количество минусов в моём решении не более чем в предыдущих советах. У других людей, это может означать всё что угодно, например ляпнуть что-либо, и всё ради процесса ...
3. Любому автору вопроса действительно нужно получить ответ, и повторюсь, такой ответ уже был в самом первом посте, и если автора он по каким-то причинам не устроил, то он мог сказать об этом напрямую и в таком случае, я бы выслал пример решения с использованием формул. А вот решать, что именно хочет и должен прочитать автор вопроса, решать не Вам, и скажу больше - автор вопроса должен знать все недостатки представленного решения, даже если кто-то называет банальную критику - хамством.

  Ответить  
 
 автор: vkodor   (30.11.-1 в 00:00)
 
 

Re[1]: Как определить - ячейка с данными или ссылка? Пользовательская функция Это у вас такая критика? (представляю что тогда у вас хамство)
Не ошибается только тот, кто ничего не делает.
вот это критика
Во-первых, для определения наличия формулы не нужно использовать пользовательские функции, так как это решается легко и просто с использованием именованных формул, во-вторых, для определения формулы есть свойство .HasFormula, а в предложенном "решении" UDF будет возвращать ИСТИНА если ячейка содержит =БРЕД или =100+5 хотя ни текст, ни формула не являются ссылкой.
а это хамство
Интересно, что движет людьми, которые предлагают дрянные, а порой и нерабочие вариантишки.
Я хоть и не автор, но проблема меня интерисует
и поэтому прошу выслать пример решения с использованием формул

  Ответить  
 
 автор: pashulka   (30.11.-1 в 00:00)
 
 

Re[1]: Как определить - ячейка с данными или ссылка? Пользовательская функция Вы в очередной раз заблуждаетесь, тот фрагмент текста, который Вы привели в качестве примера - есть всего лишь вопрос, скорее риторический, в котором содержится личностная оценка представленных вариантов. Что касается ошибок, то Вы наверное правы, только возникает другой вопрос, почему нужно учиться экспериментируя на живых людях ...

Пока не увижу примеров, где свойство .HasFormula возвращает якобы некорретный результат, применительно к ячейке содержащей формулу, не видать Вам примера, как моих ушей.

  Ответить  
 
 автор: vkodor   (30.11.-1 в 00:00)
 
 

Re[1]: Как определить - ячейка с данными или ссылка? Пользовательская функция Нет никакого желания заниматься риторикой.
Уши мне ваши ...(сами знаете)
У вас завышина самооценка
посмотрел я много топиков с вашим участием и вот что хочу сказать
ФОРУМЫ НЕ ТОЛЬКО ДЛЯ ...
ИМХО каждый может писать туда что хочет, в рамках правил форумов
это и называется высказать своё мнение (и не как уж не учиться экспериментируя на живых людях)
но нормальные люди не позволяют себе выражений на личностный характер
что касаемо .HasFormula
ввел я вячейку "=БРЕД" "=100+5"
Public Function formula(rng As Range) As Boolean
If rng.HasFormula Then formula = True
End Function
и в том и втом случае возвращает "ИСТИНА"

  Ответить  
 
 автор: pashulka   (30.11.-1 в 00:00)
 
 

Re[1]: Как определить - ячейка с данными или ссылка? Пользовательская функция 1. Самооценка здесь абсолютно не причём, тем паче что более сурового критика по отношению к себе, чем я, не найти.
2. Что касается ответов, то Вы могли прочитать хоть все мои ответы, но учитывая Ваше знание MS Excel весьма вероятно, что Вы просто не поняли многих вещей и это вполне естественно. Не зная предмета, нельзя оценить уровень знаний. Тоже самое произойдёт, если я стану просматривать топики, где речь идёт о Delphi, которого я не знаю.
3. Это ложь, если ввести "=БРЕД" или "=100+5" то Ваша пользовательская функция возвращает именно ЛОЖЬ ибо даже невооружённым взглядом видно, что оба варианта есть текст, если ввести =БРЕД и =100+5, то в первом случае ЛОЖЬ, во втором ИСТИНА, что и требовалось доказать, тогда как Ваша первая UDF в обоих случаях ИСТИНА

P.S. Если уж использовать UDF для определения наличия формулы, то достаточно :

Function IsFormula(iCell As Range) As Boolean
IsFormula = iCell.Item(1).HasFormula
End Function

  Ответить  
 
 автор: vkodor   (30.11.-1 в 00:00)
 
 

Re[1]: Как определить - ячейка с данными или ссылка? Пользовательская функция Похоже что я не правильно выразился.
Я писал в ячейке =БРЕД и =100+5 и в обоих случаях ИСТИНА

Function IsFormula(iCell As Range) As Boolean
IsFormula = iCell.Item(1).HasFormula
End Function
тоже ИСТИНА
2000 SP3

и все таки очень хочется увидеть пример решения с использованием формул

  Ответить  
 
 автор: pashulka   (30.11.-1 в 00:00)
 
 

Re[1]: Как определить - ячейка с данными или ссылка? Оба представленных Вами примера являются формулами, отсюда и абсолютно корректный результат, я же неоднократно публиковал другой вариант, а именно : =БРЕД где в начале "формулы" наличествует апостроф, в результате чего мы получаем текст, который Ваша пользовательская функция будет интерпретировать как формулу, а свойство .НasFormula возвратит ЛОЖЬ, что и требовалось доказать. P.S. Эффект аналогичный введению апострофа можно получить, если предварительно установить в ячейке текстовый формат или сначала ввести формулу, а затем установить текстовый формат и нажать F2 и ENTER

Пример определения наличия ссылки () с помощью именованных формул, будет выслан автоматически, после подтвержения некорректной работы свойства .НasFormula

  Ответить  
 
 автор: vkodor   (30.11.-1 в 00:00)
 
 

Re[1]: Как определить - ячейка с данными или ссылка? Естественно я писал о некорректности относительно данного вопроса
и вы уже подтвердили это словами
это свойство не разделяет формул на ссылки
так же как и функцию, я писал не относительно глаболизма, а по данной проблематике (наврядли у человека будут в таблице значения типа =2+2 и т.п.
отсюда мне непонятно каких ещё подтверждений вы от меня хотите, и не понятно почему не хотите выслать пример решения с использованием формул.
Может это жадность?
НУ НЕТ ТАК НЕТ...

  Ответить  
 
 автор: vkodor   (30.11.-1 в 00:00)
 
 

Re[1]: Как определить - ячейка с данными или ссылка?

  Ответить  
 
 автор: pashulka   (30.11.-1 в 00:00)
 
 

Re[2]: Как определить - ячейка с данными или ссылка? Повторюсь ещё раз, дабы любой читающий мог узреть мои слова, а не подтасовку: я говорил, что предложенная Вами пользовательская функция работает некорретно, в отличии от свойства .HasFormula, которое как видно из названия, определяет наличие формулы. А затем добавил, что формула может и не быть ссылкой, а потому применять подобный вариант "решения" к данному вопросу нельзя [Первоисточник : ]http://www.hiprog.com/forum/forum.asp?action=show&id=10&messid=111819&fullview=0

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

На самом деле от Вас лично я ничего не жду, ибо Вы намерено или нет изкажаете общий смысл моих слов, а для меня подобная фальсификацмя неприемлема. И если бы Вы сказу признали, что свойство .HasFormula работает корректно, то получили бы пример решения данного вопроса, а так получается сказка про белого бычка, которая к жадности конечно же не имеет никакого отношения, ибо я сам предлагал пример.

  Ответить  
 
 автор: vkodor   (30.11.-1 в 00:00)
 
 

Re: Как определить - ячейка с данными или ссылка? Внимание ответ
функция =ЯЧЕЙКА()

  Ответить  
 
 автор: osmor   (30.11.-1 в 00:00)
 
 

функция интересная, только я не нашел какой аргумент подойдет для решения задачи.

  Ответить  
 
 автор: pashulka   (30.11.-1 в 00:00)
 
 

Re[2]: Как определить - ячейка с данными или ссылка? Функция рабочего листа =ЯЧЕЙКА() никоим образом не сможет определить, различие между формулой(ссылкой) и значением.

  Ответить  
 
 автор: osmor   (30.11.-1 в 00:00)
 
 

вот и мне так показалось ;-)

  Ответить  
 
 автор: vkodor   (30.11.-1 в 00:00)
 
 

Re: Как определить - ячейка с данными или ссылка? зачем тебе формула воспользуйся
меню "ПРАВКА" - > "ПЕРЕЙТИ" - > "ВЫДЕЛИТЬ" - > формулы

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList