Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Замена ссылок на ячейки на значения - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Замена ссылок на ячейки на значения
zapoganchik Дата: Суббота, 22.10.2011, 16:29 | Сообщение № 1
Группа: Гости
Всем доброго времени суток
Передо мной стала следующая проблема , решение которой на не могу найти :
Имеется ячейка вида А5=А1+А2*3 , если , скажем , А1=1 , в ячейке А2 находится формула , скажем А2=А3+А4 , когда А3=3 , А4=4 . Мне нужно , что бы результат был вида "1+(2+4)*3"
Первое условие - если это возможно , то что бы формула была в скобках , та что во второстепенной ячейке
Второе условие - что бы знак "*" был всегда вида "∙"
Условие третье - формула в ячейке А2 может быть любой длинны , скажем вида "=IF(F114=0,IF(F116=0,IF(F111=ROUND(F111,0),F111&".0",F111)&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112), (IF(F117="положено",IF(F111=ROUND(F111,0),F111&".0",F111)&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112), IF(F111=ROUND(F111,0),F111&".0",F111)&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112)&"-"&F116&"∙1.5"))), IF(F116=0,IF(F111=ROUND(F111,0),F111&".0",F111)&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112)&"+("&IF(F114=ROUND(F114,0),F114&".0",F114)&"∙"&IF(F115=ROUND(F115,0),F115&".0",F115)&")", (IF(F117="положено", IF(F111=ROUND(F111,0),F111&".0",F111)&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112)&"+("&IF(F114=ROUND(F114,0),F114&".0",F114)&"∙"&IF(F115=ROUND(F115,0),F115&".0",F115)&")", IF(F111=ROUND(F111,0),F111&".0",F111)&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112)&"+("&IF(F114=ROUND(F114,0),F114&".0",F114)&"∙"&IF(F115=ROUND(F115,0),F115&".0",F115)&")-"&F116&"∙1.5"))))"

Дело в том что у меня есть объект , на котором я составляю сметы , договор состоит из 110 пунктов , и трёхзначное количество столбцов , это ещё не конец , там будет ещё столько же , мне нужно показывать вычисления , я уже почти всё автоматизировал , даже печать , и даты , а вот с этим сам справится не могу .
 
Ответить
СообщениеВсем доброго времени суток
Передо мной стала следующая проблема , решение которой на не могу найти :
Имеется ячейка вида А5=А1+А2*3 , если , скажем , А1=1 , в ячейке А2 находится формула , скажем А2=А3+А4 , когда А3=3 , А4=4 . Мне нужно , что бы результат был вида "1+(2+4)*3"
Первое условие - если это возможно , то что бы формула была в скобках , та что во второстепенной ячейке
Второе условие - что бы знак "*" был всегда вида "∙"
Условие третье - формула в ячейке А2 может быть любой длинны , скажем вида "=IF(F114=0,IF(F116=0,IF(F111=ROUND(F111,0),F111&".0",F111)&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112), (IF(F117="положено",IF(F111=ROUND(F111,0),F111&".0",F111)&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112), IF(F111=ROUND(F111,0),F111&".0",F111)&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112)&"-"&F116&"∙1.5"))), IF(F116=0,IF(F111=ROUND(F111,0),F111&".0",F111)&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112)&"+("&IF(F114=ROUND(F114,0),F114&".0",F114)&"∙"&IF(F115=ROUND(F115,0),F115&".0",F115)&")", (IF(F117="положено", IF(F111=ROUND(F111,0),F111&".0",F111)&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112)&"+("&IF(F114=ROUND(F114,0),F114&".0",F114)&"∙"&IF(F115=ROUND(F115,0),F115&".0",F115)&")", IF(F111=ROUND(F111,0),F111&".0",F111)&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112)&"+("&IF(F114=ROUND(F114,0),F114&".0",F114)&"∙"&IF(F115=ROUND(F115,0),F115&".0",F115)&")-"&F116&"∙1.5"))))"

Дело в том что у меня есть объект , на котором я составляю сметы , договор состоит из 110 пунктов , и трёхзначное количество столбцов , это ещё не конец , там будет ещё столько же , мне нужно показывать вычисления , я уже почти всё автоматизировал , даже печать , и даты , а вот с этим сам справится не могу .

Автор - zapoganchik
Дата добавления - 22.10.2011 в 16:29
Serge_007 Дата: Суббота, 22.10.2011, 18:23 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Здравствуйте.

Ничего не понял. Давайте ещё раз и с примером.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЗдравствуйте.

Ничего не понял. Давайте ещё раз и с примером.

Автор - Serge_007
Дата добавления - 22.10.2011 в 18:23
zapoganchik Дата: Суббота, 22.10.2011, 19:26 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Serge_007,
Посмотрите пожалуйста вложенный пример
К сообщению приложен файл: 3018897.xlsm (77.5 Kb)
 
Ответить
СообщениеSerge_007,
Посмотрите пожалуйста вложенный пример

Автор - zapoganchik
Дата добавления - 22.10.2011 в 19:26
Serge_007 Дата: Суббота, 22.10.2011, 19:35 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (zapoganchik)
Посмотрите пожалуйста вложенный пример

Понятнее не стало...


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (zapoganchik)
Посмотрите пожалуйста вложенный пример

Понятнее не стало...

Автор - Serge_007
Дата добавления - 22.10.2011 в 19:35
zapoganchik Дата: Суббота, 22.10.2011, 22:05 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Serge_007,
Мдя ... из всей длинной формулы "ифов" , которые я написал в первом сообщении , мне нужно получить короткую строчку вычислений , причём только то , что действительно приводит к ответу . Не сам ответ , а алгоритм вычисления , что ли ...
В ячейке F8 написана длинная цепочка ифов , ответ должен быть как в ячейке Q8 ...
Функция в ячейке F10 обращается и к результату вычислений в ячейках F12 и F13 , в которых записаны так же функции .
Так более понятно ? даже не знаю что не понятно , я даже не могу сформулировать вопрос ...
Может вы мне скажете что именно не понятно ?
 
Ответить
СообщениеSerge_007,
Мдя ... из всей длинной формулы "ифов" , которые я написал в первом сообщении , мне нужно получить короткую строчку вычислений , причём только то , что действительно приводит к ответу . Не сам ответ , а алгоритм вычисления , что ли ...
В ячейке F8 написана длинная цепочка ифов , ответ должен быть как в ячейке Q8 ...
Функция в ячейке F10 обращается и к результату вычислений в ячейках F12 и F13 , в которых записаны так же функции .
Так более понятно ? даже не знаю что не понятно , я даже не могу сформулировать вопрос ...
Может вы мне скажете что именно не понятно ?

Автор - zapoganchik
Дата добавления - 22.10.2011 в 22:05
RAN Дата: Суббота, 22.10.2011, 22:27 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Учитывая "договор состоит из 110 пунктов , и трёхзначное количество столбцов , это ещё не конец ",
я на вашем месте сделал-бы так:
создал 5 столбцов (скрытых, на другом листе... - как нравится)
1 -результат вычислений = 1
2 -результат вычислений = 2
3 -результат вычислений = 4
4 -результат вычислений = 3
5 -результат вычислений = ИТОГ

6- формула текстовой строки вида А & 1 & B & 2 & C 5 4 & D & 4 = 5

По крайней мере с If-ми разбираться значительно проще


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеУчитывая "договор состоит из 110 пунктов , и трёхзначное количество столбцов , это ещё не конец ",
я на вашем месте сделал-бы так:
создал 5 столбцов (скрытых, на другом листе... - как нравится)
1 -результат вычислений = 1
2 -результат вычислений = 2
3 -результат вычислений = 4
4 -результат вычислений = 3
5 -результат вычислений = ИТОГ

6- формула текстовой строки вида А & 1 & B & 2 & C 5 4 & D & 4 = 5

По крайней мере с If-ми разбираться значительно проще

Автор - RAN
Дата добавления - 22.10.2011 в 22:27
zapoganchik Дата: Суббота, 22.10.2011, 22:34 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

RAN,
Дело в том что там идёт не "тупая" подстановка значений , а каждое подставляемое число зависит от условия .
Например : когда заливают балку в доме , у неё разные длины - длина до 3-х метров считается бо одной формуле , с с-х до 7-и по другой , и после 7-ми уже по третьей . вот я и мучаюсь . До сих пор кое-как справлялся , написал четырёх этажные формулы , которые проверяют кучу всего , а сейчас м ну уже больше не могу , тошнит смотреть на всё тоже самое .
Пытался написать макрос , получился ужасного вида , но работал . Тобишь он правил;но вычислял результат , а вот что бы показать алгоритм вычисления , что ли , не получилось .
Как назвать правильно процедуру выполнения последовательных действий ? Алгоритм ? Т.е. я хочу что бы в ячейке выводился алгоритм вычислений вида "1+(2+4)*3" ..?
Кстати , я именно так и сделал, как вы предложили , вот пример :

=IF(F116=0, "("&(IF(F111=ROUND(F111,0),F111&".0",F111))&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112)&"+("&IF(F114=ROUND(F114,0),F114&".0",F114)&"∙"&IF(F115=ROUND(F115,0),F115&".0",F115)&"))∙0.16", IF(F114=0,(IF(F111=ROUND(F111,0),F111&".0",F111))&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112)&"∙0.16+"&D29&"∙0.2","("&(IF(F111=ROUND(F111,0),F111&".0",F111))&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112)&"+("&IF(F114=ROUND(F114,0),F114&".0",F114)&"∙"&IF(F115=ROUND(F115,0),F115&".0",F115)&"))∙0.16+"&D29&"∙0.2"))

дело в том что эта ячейка не меняется , если в родной ячейке я приписла , скажем "+2" . Значит мне надо запомнить , где и что я дописал , и пото в этой ячейке добавить . так не получается , потому значения в этим скрытом столбце должны быть универсальны . А так же если приписал "+2" в начале строки ? Не работает ....


Сообщение отредактировал zapoganchik - Суббота, 22.10.2011, 22:39
 
Ответить
СообщениеRAN,
Дело в том что там идёт не "тупая" подстановка значений , а каждое подставляемое число зависит от условия .
Например : когда заливают балку в доме , у неё разные длины - длина до 3-х метров считается бо одной формуле , с с-х до 7-и по другой , и после 7-ми уже по третьей . вот я и мучаюсь . До сих пор кое-как справлялся , написал четырёх этажные формулы , которые проверяют кучу всего , а сейчас м ну уже больше не могу , тошнит смотреть на всё тоже самое .
Пытался написать макрос , получился ужасного вида , но работал . Тобишь он правил;но вычислял результат , а вот что бы показать алгоритм вычисления , что ли , не получилось .
Как назвать правильно процедуру выполнения последовательных действий ? Алгоритм ? Т.е. я хочу что бы в ячейке выводился алгоритм вычислений вида "1+(2+4)*3" ..?
Кстати , я именно так и сделал, как вы предложили , вот пример :

=IF(F116=0, "("&(IF(F111=ROUND(F111,0),F111&".0",F111))&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112)&"+("&IF(F114=ROUND(F114,0),F114&".0",F114)&"∙"&IF(F115=ROUND(F115,0),F115&".0",F115)&"))∙0.16", IF(F114=0,(IF(F111=ROUND(F111,0),F111&".0",F111))&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112)&"∙0.16+"&D29&"∙0.2","("&(IF(F111=ROUND(F111,0),F111&".0",F111))&"∙"&IF(F112=ROUND(F112,0),F112&".0",F112)&"+("&IF(F114=ROUND(F114,0),F114&".0",F114)&"∙"&IF(F115=ROUND(F115,0),F115&".0",F115)&"))∙0.16+"&D29&"∙0.2"))

дело в том что эта ячейка не меняется , если в родной ячейке я приписла , скажем "+2" . Значит мне надо запомнить , где и что я дописал , и пото в этой ячейке добавить . так не получается , потому значения в этим скрытом столбце должны быть универсальны . А так же если приписал "+2" в начале строки ? Не работает ....

Автор - zapoganchik
Дата добавления - 22.10.2011 в 22:34
RAN Дата: Суббота, 22.10.2011, 22:56 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Quote (zapoganchik)
Может вы мне скажете что именно не понятно ?

Ничего (или все) - как вам больше нравится!
Пока ваша задача сильно напоминает задачу, поставленную ~ 40 лет назад великому КРИ
"Создать семиногого барана без органов равновесия"


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Quote (zapoganchik)
Может вы мне скажете что именно не понятно ?

Ничего (или все) - как вам больше нравится!
Пока ваша задача сильно напоминает задачу, поставленную ~ 40 лет назад великому КРИ
"Создать семиногого барана без органов равновесия"

Автор - RAN
Дата добавления - 22.10.2011 в 22:56
zapoganchik Дата: Суббота, 22.10.2011, 23:18 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

RAN,
как же мне себя объяснить-то ..? Имеется формула вида =IF(A22=0, A13*0.16, A13*0.11+A12*0.2)
допустим , по всем параметрам истинным является вычисление "A13*0.11+A12*0.2" . Заметим , что в ячейках А12 и А13 уже есть формулы , там не значения , а именно формулы . Требуется в соседней ячейке получить "(2.3∙5.8+(-1∙0.2))∙0.11+(2.3∙5.8)∙0.2" .
Первая часть выражения ("(2.3∙5.8+(-1∙0.2))") , это формула , которая написана в ячейке А13 , далее умножение на 0.11 , это продолжение формулы в родной ячейке , далее плюс (2.3∙5.8) , это формула из ячейки А12 , которая умножается на 0.2 , это уже формула в родной ячейке .
Так более понятно ?
Подправил пример
К сообщению приложен файл: 2972423.xlsm (70.6 Kb)
 
Ответить
СообщениеRAN,
как же мне себя объяснить-то ..? Имеется формула вида =IF(A22=0, A13*0.16, A13*0.11+A12*0.2)
допустим , по всем параметрам истинным является вычисление "A13*0.11+A12*0.2" . Заметим , что в ячейках А12 и А13 уже есть формулы , там не значения , а именно формулы . Требуется в соседней ячейке получить "(2.3∙5.8+(-1∙0.2))∙0.11+(2.3∙5.8)∙0.2" .
Первая часть выражения ("(2.3∙5.8+(-1∙0.2))") , это формула , которая написана в ячейке А13 , далее умножение на 0.11 , это продолжение формулы в родной ячейке , далее плюс (2.3∙5.8) , это формула из ячейки А12 , которая умножается на 0.2 , это уже формула в родной ячейке .
Так более понятно ?
Подправил пример

Автор - zapoganchik
Дата добавления - 22.10.2011 в 23:18
RAN Дата: Воскресенье, 23.10.2011, 00:20 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Что вам сказать...
Делайте не 5, а 55 (555???) дополнительных столбцов, по количеству промежуточных вычислений, каторые вы хотите видеть в текстовой строке.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЧто вам сказать...
Делайте не 5, а 55 (555???) дополнительных столбцов, по количеству промежуточных вычислений, каторые вы хотите видеть в текстовой строке.

Автор - RAN
Дата добавления - 23.10.2011 в 00:20
Michael_S Дата: Воскресенье, 23.10.2011, 03:07 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Наверно как-то так
К сообщению приложен файл: zapoganchik.xlsm (70.7 Kb)
 
Ответить
СообщениеНаверно как-то так

Автор - Michael_S
Дата добавления - 23.10.2011 в 03:07
zapoganchik Дата: Воскресенье, 23.10.2011, 10:05 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Michael_S,
Михаил спасибо за приложенные усилия , но это совсем не то . Обратите внимание , что в первом посте у меня написано более сложно подобное условие . Тут нужен макрос , который может разлочать между отдельными цифрами и ссылками на ячейки . Тобишь есть разница между "2" и "А2" . В первую очередь макрос должен различать это , он должен "знать" что перед ним - ссылка , или число . После этого , если ссылка - взять значение из нижной ячейки , если число - оставить как есть . Проблема в том , что он ( макрос ) долже знать по какому пути эксель вычисляет , и брать именно тот алгоритм вычисления (?) , по которому идёт эксель . Не всю срочку ифов переводить в текст , а только тот кусок , по которому считает эксель .
Может сейчас более понятно ?
Хорошего дня


Сообщение отредактировал zapoganchik - Воскресенье, 23.10.2011, 15:38
 
Ответить
СообщениеMichael_S,
Михаил спасибо за приложенные усилия , но это совсем не то . Обратите внимание , что в первом посте у меня написано более сложно подобное условие . Тут нужен макрос , который может разлочать между отдельными цифрами и ссылками на ячейки . Тобишь есть разница между "2" и "А2" . В первую очередь макрос должен различать это , он должен "знать" что перед ним - ссылка , или число . После этого , если ссылка - взять значение из нижной ячейки , если число - оставить как есть . Проблема в том , что он ( макрос ) долже знать по какому пути эксель вычисляет , и брать именно тот алгоритм вычисления (?) , по которому идёт эксель . Не всю срочку ифов переводить в текст , а только тот кусок , по которому считает эксель .
Может сейчас более понятно ?
Хорошего дня

Автор - zapoganchik
Дата добавления - 23.10.2011 в 10:05
Michael_S Дата: Воскресенье, 23.10.2011, 10:42 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Но ведь ваша формула прописана ЗАРАНЕЕ, зачем ее еще и макросом вычислять? По тем же условиям, что проводятся вычисления выводим нужную формулу.
 
Ответить
СообщениеНо ведь ваша формула прописана ЗАРАНЕЕ, зачем ее еще и макросом вычислять? По тем же условиям, что проводятся вычисления выводим нужную формулу.

Автор - Michael_S
Дата добавления - 23.10.2011 в 10:42
zapoganchik Дата: Воскресенье, 23.10.2011, 15:45 | Сообщение № 14
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Michael_S
проблема в добавлении . Если я в строчке добавлю "+2" , они ни как не отобразятся в вычислении . У меня две разные ячейки выполняют похожии вункции . как предложил RAN, у меня уже есть 2 разных ячейки : одна вида как вы предожили , а вторая чисто вычисления . Если я в ячейке , назовём её "вычисления" вношу какое-нибудь изменение , оно ( изменение ) никак не отображается в ячейке , в которой формула , как вы предложили .
Есть разница между =IF(A1=2, 3+A2 , 4+A3)+2 и =IF(A1=2 , "3+" & A2, "4+" & A3)
Понимаете ? я не могу прописывать в ручную каждый раз во втором варианте "+2" . А если вместо "+2" будет "+А4" ?
Вот для этого то и нужен макрос , который будет всё сам складывать .
Надеюсь сейчас моя проблема стала более понятна
Спасибо и удачи


Сообщение отредактировал zapoganchik - Воскресенье, 23.10.2011, 15:47
 
Ответить
СообщениеMichael_S
проблема в добавлении . Если я в строчке добавлю "+2" , они ни как не отобразятся в вычислении . У меня две разные ячейки выполняют похожии вункции . как предложил RAN, у меня уже есть 2 разных ячейки : одна вида как вы предожили , а вторая чисто вычисления . Если я в ячейке , назовём её "вычисления" вношу какое-нибудь изменение , оно ( изменение ) никак не отображается в ячейке , в которой формула , как вы предложили .
Есть разница между =IF(A1=2, 3+A2 , 4+A3)+2 и =IF(A1=2 , "3+" & A2, "4+" & A3)
Понимаете ? я не могу прописывать в ручную каждый раз во втором варианте "+2" . А если вместо "+2" будет "+А4" ?
Вот для этого то и нужен макрос , который будет всё сам складывать .
Надеюсь сейчас моя проблема стала более понятна
Спасибо и удачи

Автор - zapoganchik
Дата добавления - 23.10.2011 в 15:45
zapoganchik Дата: Понедельник, 24.10.2011, 14:46 | Сообщение № 15
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Может более наглядно о моей проблеме скажет следующий макрос :

Quote


Sub smeta()
Application.ScreenUpdating = True
Dim NewWS, OldWS As Worksheet
Dim L, M, N, Q, QT As Integer
Set OldWS = ActiveSheet
Set NewWS = Sheets("Temp")
Sheets("Temp").Select
Range("A1:H100").Clear
For Q = 9 To OldWS.UsedRange.Columns.Count
If OldWS.Cells(5, Q).Value = NewWS.Cells(2, 2) Then
QT = Q
End If
Next Q
M = 13
For L = 6 To 110
If OldWS.Cells(L, 6).Value <> 0 Then
For N = 1 To 8
If N = 4 Then
If (Isdigit(Right$(Left$(OldWS.Cells(L, QT).Formula, 2), 1))) Then
NewWS.Cells(M, 4) = Right$(OldWS.Cells(L, QT).Formula, Len(OldWS.Cells(L, QT).Formula) - 1)
NewWS.Cells(M, 3).Copy
NewWS.Cells(M, 4).PasteSpecial Paste:=xlPasteFormats
Else
OldWS.Cells(L, 4).Copy
NewWS.Cells(M, 4).PasteSpecial Paste:=xlPasteValues
NewWS.Cells(M, 4).PasteSpecial Paste:=xlPasteFormats
End If
N = N + 1
End If
OldWS.Cells(L, N).Copy
NewWS.Cells(M, N).PasteSpecial Paste:=xlPasteValues
NewWS.Cells(M, N).PasteSpecial Paste:=xlPasteFormats
Next N
M = M + 1
End If
If L = 109 Then
OldWS.Range("A110:H110").Copy
NewWS.Cells(M, 1).PasteSpecial Paste:=xlPasteValues
NewWS.Cells(M, 1).PasteSpecial Paste:=xlPasteFormats
End If
Next L
Application.ScreenUpdating = True
End Sub

Function Isdigit(chr As String) As Boolean
If (Asc(LCase(chr)) < Asc("a") Or Asc(LCase(chr)) > Asc("z")) Then
Isdigit = True
Else
Isdigit = False
End If
End Function



Это мой друг программер написал для меня - функция определяет что перед ней - число или ссылка на ячейку . Если ссылка , берёт значение из ячейки , если число - оставляет его как есть .
Проблема , если в ячейке тоже формула , нужно определить "глубину" формул , что бы и в этой ячейке не было новой ссылки на другую ячейку , где в свою очередь снова вормула . Вот так :)


Сообщение отредактировал zapoganchik - Понедельник, 24.10.2011, 16:01
 
Ответить
СообщениеМожет более наглядно о моей проблеме скажет следующий макрос :

Quote


Sub smeta()
Application.ScreenUpdating = True
Dim NewWS, OldWS As Worksheet
Dim L, M, N, Q, QT As Integer
Set OldWS = ActiveSheet
Set NewWS = Sheets("Temp")
Sheets("Temp").Select
Range("A1:H100").Clear
For Q = 9 To OldWS.UsedRange.Columns.Count
If OldWS.Cells(5, Q).Value = NewWS.Cells(2, 2) Then
QT = Q
End If
Next Q
M = 13
For L = 6 To 110
If OldWS.Cells(L, 6).Value <> 0 Then
For N = 1 To 8
If N = 4 Then
If (Isdigit(Right$(Left$(OldWS.Cells(L, QT).Formula, 2), 1))) Then
NewWS.Cells(M, 4) = Right$(OldWS.Cells(L, QT).Formula, Len(OldWS.Cells(L, QT).Formula) - 1)
NewWS.Cells(M, 3).Copy
NewWS.Cells(M, 4).PasteSpecial Paste:=xlPasteFormats
Else
OldWS.Cells(L, 4).Copy
NewWS.Cells(M, 4).PasteSpecial Paste:=xlPasteValues
NewWS.Cells(M, 4).PasteSpecial Paste:=xlPasteFormats
End If
N = N + 1
End If
OldWS.Cells(L, N).Copy
NewWS.Cells(M, N).PasteSpecial Paste:=xlPasteValues
NewWS.Cells(M, N).PasteSpecial Paste:=xlPasteFormats
Next N
M = M + 1
End If
If L = 109 Then
OldWS.Range("A110:H110").Copy
NewWS.Cells(M, 1).PasteSpecial Paste:=xlPasteValues
NewWS.Cells(M, 1).PasteSpecial Paste:=xlPasteFormats
End If
Next L
Application.ScreenUpdating = True
End Sub

Function Isdigit(chr As String) As Boolean
If (Asc(LCase(chr)) < Asc("a") Or Asc(LCase(chr)) > Asc("z")) Then
Isdigit = True
Else
Isdigit = False
End If
End Function



Это мой друг программер написал для меня - функция определяет что перед ней - число или ссылка на ячейку . Если ссылка , берёт значение из ячейки , если число - оставляет его как есть .
Проблема , если в ячейке тоже формула , нужно определить "глубину" формул , что бы и в этой ячейке не было новой ссылки на другую ячейку , где в свою очередь снова вормула . Вот так :)

Автор - zapoganchik
Дата добавления - 24.10.2011 в 14:46
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!