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

Вход

Регистрация

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

 

= Мир MS Excel/О преобразовании формул из FormulaR1C1 в Formula - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » О преобразовании формул из FormulaR1C1 в Formula (Макросы/Sub)
О преобразовании формул из FormulaR1C1 в Formula
and708 Дата: Воскресенье, 05.07.2020, 08:09 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Всем доброго времени суток. Если нажать кнопку "запись макроса", и потом начать совершать какие-то действия, то начнется автоматическая запись макроса. При этом, если ввести в ячейку A35 формулу:
Код
=ДВССЫЛ(АДРЕС(UL34;UW34;4))

то она в макросе примет вид:
[vba]
Код
ActiveCell.FormulaR1C1 = "=INDIRECT(ADDRESS(R[-1]C[557],R[-1]C[568],4))"
[/vba]
Прошу подсказать, как добиться аналогичного результата без кнопки "запись макроса" и без "FormulaR1C1". Я слышал, что есть возможность вводить вместо "FormulaR1C1" просто "Formula", но при этом почти все сами функции будут выглядеть по-другому. Например, ввести
[vba]
Код
ActiveCell.Formula = indirect(Address(3, 558, 4))
[/vba] не получится, будет сообщение об ошибке. Может быть, есть где-то справочник, показывающий перевод этих формул из одного вида в другой. Прошу помочь, подскажите где можно найти подобный справочник-преобразователь функций.


Сообщение отредактировал and708 - Воскресенье, 05.07.2020, 14:34
 
Ответить
СообщениеВсем доброго времени суток. Если нажать кнопку "запись макроса", и потом начать совершать какие-то действия, то начнется автоматическая запись макроса. При этом, если ввести в ячейку A35 формулу:
Код
=ДВССЫЛ(АДРЕС(UL34;UW34;4))

то она в макросе примет вид:
[vba]
Код
ActiveCell.FormulaR1C1 = "=INDIRECT(ADDRESS(R[-1]C[557],R[-1]C[568],4))"
[/vba]
Прошу подсказать, как добиться аналогичного результата без кнопки "запись макроса" и без "FormulaR1C1". Я слышал, что есть возможность вводить вместо "FormulaR1C1" просто "Formula", но при этом почти все сами функции будут выглядеть по-другому. Например, ввести
[vba]
Код
ActiveCell.Formula = indirect(Address(3, 558, 4))
[/vba] не получится, будет сообщение об ошибке. Может быть, есть где-то справочник, показывающий перевод этих формул из одного вида в другой. Прошу помочь, подскажите где можно найти подобный справочник-преобразователь функций.

Автор - and708
Дата добавления - 05.07.2020 в 08:09
Pelena Дата: Воскресенье, 05.07.2020, 14:46 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Попробуйте так
[vba]
Код
ActiveCell.Formula ="=INDIRECT(ADDRESS(3, 558, 4))"
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПопробуйте так
[vba]
Код
ActiveCell.Formula ="=INDIRECT(ADDRESS(3, 558, 4))"
[/vba]

Автор - Pelena
Дата добавления - 05.07.2020 в 14:46
Pelena Дата: Воскресенье, 05.07.2020, 14:51 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
and708, Вы расскажите, какова конечная цель. Возможно, Вам и не нужна эта формула с ДВССЫЛ(). Что нужно сделать?


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщениеand708, Вы расскажите, какова конечная цель. Возможно, Вам и не нужна эта формула с ДВССЫЛ(). Что нужно сделать?

Автор - Pelena
Дата добавления - 05.07.2020 в 14:51
and708 Дата: Воскресенье, 05.07.2020, 14:51 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Pelena, Всё, увидел Ваш ответ. большое спасибо. попробую продолжить так. но все равно вопрос о том, есть ли альтернативные функции, остается. если вдруг знаете где найти - пожалуйста напишите, если нет-то ничего страшного.
 
Ответить
СообщениеPelena, Всё, увидел Ваш ответ. большое спасибо. попробую продолжить так. но все равно вопрос о том, есть ли альтернативные функции, остается. если вдруг знаете где найти - пожалуйста напишите, если нет-то ничего страшного.

Автор - and708
Дата добавления - 05.07.2020 в 14:51
and708 Дата: Воскресенье, 05.07.2020, 15:00 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Pelena, увидел ваш вопрос о конечной цели, попробую ответить. выделен диапазон ячеек, нужно добавить к выделенному диапазону формулу при условном форматировании. Если выделен диапазон от UL3 до UN5, тогда формула будет такой:
Код
=ЕСЛИ(И(UL3<>п;UL3+кле_А2<>5;счёт(кан_А2)=0);ИСТИНА;ЛОЖЬ)

если же будет выделен другой диапазон, то и формула условного форматирования тоже будет другой. Я же пытаюсь преобразовать эту формулу таким образом, чтобы была возможность изменить и UL3, и многие другие части этой формулы таким образом, чтобы была возможность вместо UL, 3, и всего остального сделать привязку к заранее заданным переменным.
 
Ответить
СообщениеPelena, увидел ваш вопрос о конечной цели, попробую ответить. выделен диапазон ячеек, нужно добавить к выделенному диапазону формулу при условном форматировании. Если выделен диапазон от UL3 до UN5, тогда формула будет такой:
Код
=ЕСЛИ(И(UL3<>п;UL3+кле_А2<>5;счёт(кан_А2)=0);ИСТИНА;ЛОЖЬ)

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

Автор - and708
Дата добавления - 05.07.2020 в 15:00
Pelena Дата: Воскресенье, 05.07.2020, 15:06 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Если б Вы ещё приложили файл с небольшим примером, было б совсем здорово


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЕсли б Вы ещё приложили файл с небольшим примером, было б совсем здорово

Автор - Pelena
Дата добавления - 05.07.2020 в 15:06
and708 Дата: Воскресенье, 05.07.2020, 15:10 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Pelena, Кстати, в вашей формуле при цифрах - всё в порядке, но если заменить цифры на буквы:
[vba]
Код
a = 3
[/vba]
[vba]
Код
b = 558
[/vba]
[vba]
Код
Cells(12, 1).Select
[/vba]
[vba]
Код
ActiveCell.Formula = "=INDIRECT(ADDRESS(a, b, 4))"
[/vba]
то эта формула выдаст ошибку, мы получим сообщение #ИМЯпожалуйста подскажите как можно этого избежать.
 
Ответить
СообщениеPelena, Кстати, в вашей формуле при цифрах - всё в порядке, но если заменить цифры на буквы:
[vba]
Код
a = 3
[/vba]
[vba]
Код
b = 558
[/vba]
[vba]
Код
Cells(12, 1).Select
[/vba]
[vba]
Код
ActiveCell.Formula = "=INDIRECT(ADDRESS(a, b, 4))"
[/vba]
то эта формула выдаст ошибку, мы получим сообщение #ИМЯпожалуйста подскажите как можно этого избежать.

Автор - and708
Дата добавления - 05.07.2020 в 15:10
Pelena Дата: Воскресенье, 05.07.2020, 16:16 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
[vba]
Код
ActiveCell.Formula = "=INDIRECT(ADDRESS(" & a & "," & b & ", 4))"
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение[vba]
Код
ActiveCell.Formula = "=INDIRECT(ADDRESS(" & a & "," & b & ", 4))"
[/vba]

Автор - Pelena
Дата добавления - 05.07.2020 в 16:16
Мир MS Excel » Вопросы и решения » Вопросы по VBA » О преобразовании формул из FormulaR1C1 в Formula (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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