Добрый день! Подскажите, можно ли изменить формулы в ячейках во всех(порядка 100000) формулы в разных строках разные, но добавить к ним нужно одну. Например: Ячейка а1=в35+в2 Ячейка а2=в12*с45 Что бы стало: Ячейка а1=еслиошибка(а35+в2;0) а2=еслиошибка(в12*с45;0)
Добрый день! Подскажите, можно ли изменить формулы в ячейках во всех(порядка 100000) формулы в разных строках разные, но добавить к ним нужно одну. Например: Ячейка а1=в35+в2 Ячейка а2=в12*с45 Что бы стало: Ячейка а1=еслиошибка(а35+в2;0) а2=еслиошибка(в12*с45;0)1paev
Sub Мяу() For Each cell In ActiveSheet.UsedRange.Cells If cell.HasFormula Then cell.Value = "= IfError(" & Mid$(cell.FormulaR1C1, 2) & ",0)" Next End Sub
[/vba]
Ну, если везде разные... [vba]
Код
Sub Мяу() For Each cell In ActiveSheet.UsedRange.Cells If cell.HasFormula Then cell.Value = "= IfError(" & Mid$(cell.FormulaR1C1, 2) & ",0)" Next End Sub
А кто сказал, что макрос дложен быть в той же книге? Ну и на крайняк, остается вариант "Сто тысяч зрателей по одному рублю дадут, это будет ... сумашедшие деньги!" (С)
А кто сказал, что макрос дложен быть в той же книге? Ну и на крайняк, остается вариант "Сто тысяч зрателей по одному рублю дадут, это будет ... сумашедшие деньги!" (С)RAN
Прошу всех (особенно модераторов) обратить внимание! Макрописец. По троллингу очень похож на Екселиста, который забанен на днях на двух форумах.
Цитата
to Макрописец О чем Вы? )
Прошу всех (особенно модераторов) обратить внимание! Макрописец. По троллингу очень похож на Екселиста, который забанен на днях на двух форумах. vikttur
Сообщение отредактировал vikttur - Среда, 24.06.2015, 22:03
Во вложении файлик с примером. Есть условие, что использовать макросы никак не получится, изменять структуру файла нельзя(добавлять столбцы и т.д), т.к. данные из этого файла тянутся в другие файлы, так-же необходимо сохранить исходные формулы в ячейках, суть вопроса, убрать ошибки из файла, сохранив формулы(даже там где ошибка) не меняя структуру.
Во вложении файлик с примером. Есть условие, что использовать макросы никак не получится, изменять структуру файла нельзя(добавлять столбцы и т.д), т.к. данные из этого файла тянутся в другие файлы, так-же необходимо сохранить исходные формулы в ячейках, суть вопроса, убрать ошибки из файла, сохранив формулы(даже там где ошибка) не меняя структуру.1paev
Не менять формулы, не использовать макросы, руками не трогать! Как при таких условиях можно что-то изменить? Силой слова?
Код
=ЕСЛИ(C2;A2+B2/C2;)
Если ноль мешает, можно в свойствах листа убрать отображение нулевых значений. Можно нули не показывать:
Код
=ЕСЛИ(C2;A2+B2/C2;"")
Но при этом следует помнить, что среди чисел будет находиться текстовые значения (пустая строка "") и при использования диапазона (или значений диапазона) в дальнейших вычислениях возможно появление ошибки.
Не менять формулы, не использовать макросы, руками не трогать! Как при таких условиях можно что-то изменить? Силой слова?
Код
=ЕСЛИ(C2;A2+B2/C2;)
Если ноль мешает, можно в свойствах листа убрать отображение нулевых значений. Можно нули не показывать:
Код
=ЕСЛИ(C2;A2+B2/C2;"")
Но при этом следует помнить, что среди чисел будет находиться текстовые значения (пустая строка "") и при использования диапазона (или значений диапазона) в дальнейших вычислениях возможно появление ошибки.vikttur
Сообщение отредактировал vikttur - Среда, 24.06.2015, 22:54
По сути менять формулу можно, не должно измениться ее логическое значение, кроме как исправление ошибки, допустим была формула =a1+b1, должна стать =Еслиошибка(a1+b1;0), получается a1+b1 осталось и значение в ячейке не изменится, но в случае ошибки, отобразится 0. проблема то сама именно в объеме информации и что формулы разные, так можно было бы конечно их заново перетянуть, но очень трудоемко с учетом размера файла
По сути менять формулу можно, не должно измениться ее логическое значение, кроме как исправление ошибки, допустим была формула =a1+b1, должна стать =Еслиошибка(a1+b1;0), получается a1+b1 осталось и значение в ячейке не изменится, но в случае ошибки, отобразится 0. проблема то сама именно в объеме информации и что формулы разные, так можно было бы конечно их заново перетянуть, но очень трудоемко с учетом размера файла1paev
Сообщение отредактировал 1paev - Среда, 24.06.2015, 23:05
Можно и без макросов, только долго объяснять. На листе с формулами нужно сделать следующее: Ctrl+H, заменить = на пусто, останется текст формул. На соседнем листе написать формулу ="%ЕСЛИОШИБКА("&Лист1!A1&";0)", протянуть её на нужный диапазон, Скопировать этот диапазон и вставить специальной вставкой--как значения на Лист1, естественно в тот же диапазон (А1). Снова Ctrl+H, и заменить % на =. Пробуйте.
Можно и без макросов, только долго объяснять. На листе с формулами нужно сделать следующее: Ctrl+H, заменить = на пусто, останется текст формул. На соседнем листе написать формулу ="%ЕСЛИОШИБКА("&Лист1!A1&";0)", протянуть её на нужный диапазон, Скопировать этот диапазон и вставить специальной вставкой--как значения на Лист1, естественно в тот же диапазон (А1). Снова Ctrl+H, и заменить % на =. Пробуйте.gling
Посмотрите файл в сообщении №14. Что не понятно спрашивайте. Внимательно читайте сообщение №14 и выполняйте все последовательно как там и написано. Должно получиться.
Посмотрите файл в сообщении №14. Что не понятно спрашивайте. Внимательно читайте сообщение №14 и выполняйте все последовательно как там и написано. Должно получиться.gling
ЯД-41001506838083
Сообщение отредактировал gling - Четверг, 25.06.2015, 00:32