Задача следующая. Есть книга, листы которой называются как товары (в примере — лист Яблоки) с наименованиями и ценами и лист Скидки с товарами (которые названия листов) и ценами. Нужно подтянуть из него скидку и заменить цену на формулу типа
Код
=84.26*(1-Скидки!R2C2)
где 84.26 — значение, которое было в ячейке до того. Решение вроде бы простое:[vba]
[/vba]Проблема в том, что оно вываливается с 1004 ошибкой. Причём проблема воспроизводится не на всех настройках и версиях — дома на 2007 вылечилось с помощью FormulaR1C1Local, на работе на 2010 не лечится совсем. Дело не в неправильном указании адреса ячейки со скидкой —[vba]
[/vba] не помогает. Комбинирование R1C1 и Local, как я уже указал, помогает не везде... [p.s.]Всяческое переформатирование, начиная от CSng и заканчивая разборкой на запчасти Split'ом с последующим перевычислением, тоже. Val помогает, но копейки-то важны.[/p.s.]
Задача следующая. Есть книга, листы которой называются как товары (в примере — лист Яблоки) с наименованиями и ценами и лист Скидки с товарами (которые названия листов) и ценами. Нужно подтянуть из него скидку и заменить цену на формулу типа
Код
=84.26*(1-Скидки!R2C2)
где 84.26 — значение, которое было в ячейке до того. Решение вроде бы простое:[vba]
[/vba]Проблема в том, что оно вываливается с 1004 ошибкой. Причём проблема воспроизводится не на всех настройках и версиях — дома на 2007 вылечилось с помощью FormulaR1C1Local, на работе на 2010 не лечится совсем. Дело не в неправильном указании адреса ячейки со скидкой —[vba]
[/vba] не помогает. Комбинирование R1C1 и Local, как я уже указал, помогает не везде... [p.s.]Всяческое переформатирование, начиная от CSng и заканчивая разборкой на запчасти Split'ом с последующим перевычислением, тоже. Val помогает, но копейки-то важны.[/p.s.]StoTisteg
_Boroda_, мне приходила в голову эта мысль. Проблема в том, что неизвестно, с какими настройками придётся макросу столкнуться, не окажется ли, что Эксель на какой-то машине захочет обратного? Хотя всегда можно же OERRN прикрутить.
_Boroda_, мне приходила в голову эта мысль. Проблема в том, что неизвестно, с какими настройками придётся макросу столкнуться, не окажется ли, что Эксель на какой-то машине захочет обратного? Хотя всегда можно же OERRN прикрутить.StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Проблема в том, что неизвестно, с какими настройками придётся макросу столкнуться, не окажется ли, что Эксель на какой-то машине захочет обратного?
Это как? В VBA точка, в Excel если точка, то ничего не заменится, если запятая, то она заменится на точку. Если не запятая и не точка (а что тогда? ну ладно, допустим), то так например [vba]
Код
Mid(1 / 2, 2, 1)
[/vba] [vba]
Код
Mid(0.1, 2, 1)
[/vba] Или программно искать системный разделитель, но это тот еще геморрой - международные параметры, системные, галочка использовать / не использовать. Ну нафиг
Проблема в том, что неизвестно, с какими настройками придётся макросу столкнуться, не окажется ли, что Эксель на какой-то машине захочет обратного?
Это как? В VBA точка, в Excel если точка, то ничего не заменится, если запятая, то она заменится на точку. Если не запятая и не точка (а что тогда? ну ладно, допустим), то так например [vba]
Код
Mid(1 / 2, 2, 1)
[/vba] [vba]
Код
Mid(0.1, 2, 1)
[/vba] Или программно искать системный разделитель, но это тот еще геморрой - международные параметры, системные, галочка использовать / не использовать. Ну нафиг_Boroda_