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

Вход

Регистрация

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

 

= Мир MS Excel/Конвертировать формулу в макрос - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Конвертировать формулу в макрос (Макросы/Sub)
Конвертировать формулу в макрос
PORTANDREW Дата: Среда, 25.11.2020, 13:30 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Доброго времени Уважаемые специалисты, подскажите пожалуйста, как данную формулу в макросе, преобразовать именно в макрос. Чтобы не было формулы, но эффект работы остался тот же?
[vba]
Код

Sub Nums()
[b4] = 1
Range("b4:b" & Range("E" & Rows.Count).End(xlUp).Row).FormulaR1C1 = "=IF(RC4="""","""",MAX(R3C2:R[-1]C)+1)"
End Sub
[/vba]


ZAC

Сообщение отредактировал PORTANDREW - Среда, 25.11.2020, 13:35
 
Ответить
СообщениеДоброго времени Уважаемые специалисты, подскажите пожалуйста, как данную формулу в макросе, преобразовать именно в макрос. Чтобы не было формулы, но эффект работы остался тот же?
[vba]
Код

Sub Nums()
[b4] = 1
Range("b4:b" & Range("E" & Rows.Count).End(xlUp).Row).FormulaR1C1 = "=IF(RC4="""","""",MAX(R3C2:R[-1]C)+1)"
End Sub
[/vba]

Автор - PORTANDREW
Дата добавления - 25.11.2020 в 13:30
_Igor_61 Дата: Четверг, 26.11.2020, 00:14 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
Чтобы не было формулы, но эффект работы остался тот же

Можно так например:
[vba]
Код
Sub Bmax_()
    Dim m&, i&
    m = Cells(3, 2).Value
For i = 4 To Cells(Rows.Count, 5).End(xlUp).Row
If Cells(i, 4).Value = "" Then
    Cells(i, 2).Value = ""
End If
If Cells(i, 4).Value <> "" And Cells(i, 2).Value <= m Then
    m = m
    Cells(i, 2).Value = m + 1
End If
If Cells(i, 4).Value <> "" And Cells(i, 2).Value > m Then
    m = Cells(i, 2).Value
End If
Next i
End Sub
[/vba]


Сообщение отредактировал _Igor_61 - Четверг, 26.11.2020, 00:18
 
Ответить
Сообщение
Чтобы не было формулы, но эффект работы остался тот же

Можно так например:
[vba]
Код
Sub Bmax_()
    Dim m&, i&
    m = Cells(3, 2).Value
For i = 4 To Cells(Rows.Count, 5).End(xlUp).Row
If Cells(i, 4).Value = "" Then
    Cells(i, 2).Value = ""
End If
If Cells(i, 4).Value <> "" And Cells(i, 2).Value <= m Then
    m = m
    Cells(i, 2).Value = m + 1
End If
If Cells(i, 4).Value <> "" And Cells(i, 2).Value > m Then
    m = Cells(i, 2).Value
End If
Next i
End Sub
[/vba]

Автор - _Igor_61
Дата добавления - 26.11.2020 в 00:14
PORTANDREW Дата: Воскресенье, 29.11.2020, 10:49 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
_Igor_61, Огромное спасибо! Все работает!


ZAC
 
Ответить
Сообщение_Igor_61, Огромное спасибо! Все работает!

Автор - PORTANDREW
Дата добавления - 29.11.2020 в 10:49
Gustav Дата: Понедельник, 30.11.2020, 07:38 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2731
Репутация: 1132 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
А если не вдаваться в подробности вычислений по формулам, то, наверное, простейший вариант достижения цели - специальная вставка "только значений", рассчитанных по этим формулам. Тогда с минимальными изменениями, вносимыми в исходный макрос, получаем его следующий вид:
[vba]
Код
Sub Nums()
    [b4] = 1
    With Range("b4:b" & Range("E" & Rows.Count).End(xlUp).Row)
        .FormulaR1C1 = "=IF(RC4="""","""",MAX(R3C2:R[-1]C)+1)"
        .Copy
        .PasteSpecial xlPasteValues
    End With
    Application.CutCopyMode = False
End Sub
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеА если не вдаваться в подробности вычислений по формулам, то, наверное, простейший вариант достижения цели - специальная вставка "только значений", рассчитанных по этим формулам. Тогда с минимальными изменениями, вносимыми в исходный макрос, получаем его следующий вид:
[vba]
Код
Sub Nums()
    [b4] = 1
    With Range("b4:b" & Range("E" & Rows.Count).End(xlUp).Row)
        .FormulaR1C1 = "=IF(RC4="""","""",MAX(R3C2:R[-1]C)+1)"
        .Copy
        .PasteSpecial xlPasteValues
    End With
    Application.CutCopyMode = False
End Sub
[/vba]

Автор - Gustav
Дата добавления - 30.11.2020 в 07:38
_Igor_61 Дата: Воскресенье, 06.12.2020, 14:18 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
Gustav, тогда название темы поменять придется на "Заменить формулы на значения" :)
 
Ответить
СообщениеGustav, тогда название темы поменять придется на "Заменить формулы на значения" :)

Автор - _Igor_61
Дата добавления - 06.12.2020 в 14:18
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Конвертировать формулу в макрос (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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