Вывод в ячейку результата формулы
rtv206
Дата: Суббота, 29.01.2022, 19:54 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Доброго времени суток, уважаемые форумчане! Прошу Вашей помощи: Использую такой макрос для подсчета количества значений: [vba]Код
Sub Макрос2() Dim lr As Long Set shSrc = Worksheets("Лист3") lr = shSrc.Cells(shSrc.Rows.Count, "A").End(xlUp).row Dim r As Long r = 4 Do While r <= lr Worksheets("Лист3").Cells(r, 2).Value = "=COUNTIF(Лист1!C[37],Лист3!RC[8])" Worksheets("Лист3").Cells(r, 3).Value = "=COUNTIF(Лист1!C[36],Лист3!RC[8])" Worksheets("Лист3").Cells(r, 4).Value = "=COUNTIF(Лист1!C[35],Лист3!RC[8])" Worksheets("Лист3").Cells(r, 5).Value = "=COUNTIF(Лист1!C[34],Лист3!RC[8])" r = r + 1 Loop
[/vba] При большом количестве поисковых данных замедляется процесс поиска. Подскажите пожалуйста как в ячейку выводить результат, а не формулу. Заранее благодарен за помощь
Доброго времени суток, уважаемые форумчане! Прошу Вашей помощи: Использую такой макрос для подсчета количества значений: [vba]Код
Sub Макрос2() Dim lr As Long Set shSrc = Worksheets("Лист3") lr = shSrc.Cells(shSrc.Rows.Count, "A").End(xlUp).row Dim r As Long r = 4 Do While r <= lr Worksheets("Лист3").Cells(r, 2).Value = "=COUNTIF(Лист1!C[37],Лист3!RC[8])" Worksheets("Лист3").Cells(r, 3).Value = "=COUNTIF(Лист1!C[36],Лист3!RC[8])" Worksheets("Лист3").Cells(r, 4).Value = "=COUNTIF(Лист1!C[35],Лист3!RC[8])" Worksheets("Лист3").Cells(r, 5).Value = "=COUNTIF(Лист1!C[34],Лист3!RC[8])" r = r + 1 Loop
[/vba] При большом количестве поисковых данных замедляется процесс поиска. Подскажите пожалуйста как в ячейку выводить результат, а не формулу. Заранее благодарен за помощь rtv206
Ответить
Сообщение Доброго времени суток, уважаемые форумчане! Прошу Вашей помощи: Использую такой макрос для подсчета количества значений: [vba]Код
Sub Макрос2() Dim lr As Long Set shSrc = Worksheets("Лист3") lr = shSrc.Cells(shSrc.Rows.Count, "A").End(xlUp).row Dim r As Long r = 4 Do While r <= lr Worksheets("Лист3").Cells(r, 2).Value = "=COUNTIF(Лист1!C[37],Лист3!RC[8])" Worksheets("Лист3").Cells(r, 3).Value = "=COUNTIF(Лист1!C[36],Лист3!RC[8])" Worksheets("Лист3").Cells(r, 4).Value = "=COUNTIF(Лист1!C[35],Лист3!RC[8])" Worksheets("Лист3").Cells(r, 5).Value = "=COUNTIF(Лист1!C[34],Лист3!RC[8])" r = r + 1 Loop
[/vba] При большом количестве поисковых данных замедляется процесс поиска. Подскажите пожалуйста как в ячейку выводить результат, а не формулу. Заранее благодарен за помощь Автор - rtv206 Дата добавления - 29.01.2022 в 19:54
bmv98rus
Дата: Суббота, 29.01.2022, 20:23 |
Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
тут два вопроса. 1. нужно ли вам оставить формулы, чтоб потом это позволило менять данные и иметь результат расчтеа 2. как чуток ускорить работу макроса. п. 2 решается автозаполнением по всем строкам, а не вставкой формулы в каждую ячейку. Однако при большом количестве расчетов, общее время может быть достаточно большим.
тут два вопроса. 1. нужно ли вам оставить формулы, чтоб потом это позволило менять данные и иметь результат расчтеа 2. как чуток ускорить работу макроса. п. 2 решается автозаполнением по всем строкам, а не вставкой формулы в каждую ячейку. Однако при большом количестве расчетов, общее время может быть достаточно большим. bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение тут два вопроса. 1. нужно ли вам оставить формулы, чтоб потом это позволило менять данные и иметь результат расчтеа 2. как чуток ускорить работу макроса. п. 2 решается автозаполнением по всем строкам, а не вставкой формулы в каждую ячейку. Однако при большом количестве расчетов, общее время может быть достаточно большим. Автор - bmv98rus Дата добавления - 29.01.2022 в 20:23
rtv206
Дата: Суббота, 29.01.2022, 20:44 |
Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
bmv98rus , іормулы оставлять не нужно. При изменении данных будет пересчет. Как сделать макросом автозаполнение?
bmv98rus , іормулы оставлять не нужно. При изменении данных будет пересчет. Как сделать макросом автозаполнение?rtv206
Ответить
Сообщение bmv98rus , іормулы оставлять не нужно. При изменении данных будет пересчет. Как сделать макросом автозаполнение?Автор - rtv206 Дата добавления - 29.01.2022 в 20:44
_Igor_61
Дата: Воскресенье, 30.01.2022, 19:49 |
Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация:
90
±
Замечаний:
0% ±
Excel 2007
Как сделать макросом автозаполнение?
Range(отсюда до сюда)=Formula(такая-то) Local - по обстановке Правда, это не имеет никакого отношения к заявленной теме... Для решения задачи, обозначенной в теме не хватает самой малости - файла с примером. Может там формула и нафиг не нужна, все можно в коде посчитать..
Как сделать макросом автозаполнение?
Range(отсюда до сюда)=Formula(такая-то) Local - по обстановке Правда, это не имеет никакого отношения к заявленной теме... Для решения задачи, обозначенной в теме не хватает самой малости - файла с примером. Может там формула и нафиг не нужна, все можно в коде посчитать.. _Igor_61
Ответить
Сообщение Как сделать макросом автозаполнение?
Range(отсюда до сюда)=Formula(такая-то) Local - по обстановке Правда, это не имеет никакого отношения к заявленной теме... Для решения задачи, обозначенной в теме не хватает самой малости - файла с примером. Может там формула и нафиг не нужна, все можно в коде посчитать.. Автор - _Igor_61 Дата добавления - 30.01.2022 в 19:49
rtv206
Дата: Воскресенье, 30.01.2022, 22:15 |
Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
_Igor_61 , Файл прикладываю. Так вот и нужно чтобы формулы не было. А расчет происходил в коде
_Igor_61 , Файл прикладываю. Так вот и нужно чтобы формулы не было. А расчет происходил в кодеrtv206
Ответить
Сообщение _Igor_61 , Файл прикладываю. Так вот и нужно чтобы формулы не было. А расчет происходил в кодеАвтор - rtv206 Дата добавления - 30.01.2022 в 22:15
bmv98rus
Дата: Воскресенье, 30.01.2022, 22:26 |
Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
[vba]Код
Sub Макрос2() Application.EnableEvents = False With Worksheets("Лист3") .Cells(4, 2).FormulaR1C1 = "=COUNTIF(Лист1!C39,Лист3!RC[8])" .Cells(4, 2).AutoFill Destination:=.Range(.Cells(4, 2), .Cells(4, 5)), Type:=xlFillDefault Range("B4:E4").Select .Range(.Cells(4, 2), .Cells(4, 5)).AutoFill Destination:=.Range(.Cells(4, 2), _ .Cells(.Cells(.Rows.Count, "A").End(xlUp).Row, 5)), Type:=xlFillDefault End With Application.EnableEvents = True Application.Calculate End Sub
[/vba]
[vba]Код
Sub Макрос2() Application.EnableEvents = False With Worksheets("Лист3") .Cells(4, 2).FormulaR1C1 = "=COUNTIF(Лист1!C39,Лист3!RC[8])" .Cells(4, 2).AutoFill Destination:=.Range(.Cells(4, 2), .Cells(4, 5)), Type:=xlFillDefault Range("B4:E4").Select .Range(.Cells(4, 2), .Cells(4, 5)).AutoFill Destination:=.Range(.Cells(4, 2), _ .Cells(.Cells(.Rows.Count, "A").End(xlUp).Row, 5)), Type:=xlFillDefault End With Application.EnableEvents = True Application.Calculate End Sub
[/vba] bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение [vba]Код
Sub Макрос2() Application.EnableEvents = False With Worksheets("Лист3") .Cells(4, 2).FormulaR1C1 = "=COUNTIF(Лист1!C39,Лист3!RC[8])" .Cells(4, 2).AutoFill Destination:=.Range(.Cells(4, 2), .Cells(4, 5)), Type:=xlFillDefault Range("B4:E4").Select .Range(.Cells(4, 2), .Cells(4, 5)).AutoFill Destination:=.Range(.Cells(4, 2), _ .Cells(.Cells(.Rows.Count, "A").End(xlUp).Row, 5)), Type:=xlFillDefault End With Application.EnableEvents = True Application.Calculate End Sub
[/vba] Автор - bmv98rus Дата добавления - 30.01.2022 в 22:26
rtv206
Дата: Воскресенье, 30.01.2022, 22:41 |
Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
bmv98rus , в ячейках В-Е всё так же продолжает вводится формула. А необходимо чтобы был результат подсёта, без формулы в ячейке
bmv98rus , в ячейках В-Е всё так же продолжает вводится формула. А необходимо чтобы был результат подсёта, без формулы в ячейкеrtv206
Ответить
Сообщение bmv98rus , в ячейках В-Е всё так же продолжает вводится формула. А необходимо чтобы был результат подсёта, без формулы в ячейкеАвтор - rtv206 Дата добавления - 30.01.2022 в 22:41
bmv98rus
Дата: Воскресенье, 30.01.2022, 22:48 |
Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
Длительность операции приемлема? Если да, то [vba]Код
Sub Макрос2() Application.EnableEvents = False With Worksheets("Лист3") .Cells(4, 2).FormulaR1C1 = "=COUNTIF(Лист1!C39,Лист3!RC[8])" .Cells(4, 2).AutoFill Destination:=.Range(.Cells(4, 2), .Cells(4, 5)), Type:=xlFillDefault ' Range("B4:E4").Select .Range(.Cells(4, 2), .Cells(4, 5)).AutoFill Destination:=.Range(.Cells(4, 2), _ .Cells(.Cells(.Rows.Count, "A").End(xlUp).Row, 5)), Type:=xlFillDefault Application.Calculate .Range(.Cells(4, 2), .Cells(.Cells(.Rows.Count, "A").End(xlUp).Row, 5)).value=_ .Range(.Cells(4, 2), .Cells(.Cells(.Rows.Count, "A").End(xlUp).Row, 5)).value End With Application.EnableEvents = True[sub] End Sub
[/vba] Если нет, то нужно писать код который посчитает то, что нужно, там, где надо, и выведет результат туда, куда требуется.
Длительность операции приемлема? Если да, то [vba]Код
Sub Макрос2() Application.EnableEvents = False With Worksheets("Лист3") .Cells(4, 2).FormulaR1C1 = "=COUNTIF(Лист1!C39,Лист3!RC[8])" .Cells(4, 2).AutoFill Destination:=.Range(.Cells(4, 2), .Cells(4, 5)), Type:=xlFillDefault ' Range("B4:E4").Select .Range(.Cells(4, 2), .Cells(4, 5)).AutoFill Destination:=.Range(.Cells(4, 2), _ .Cells(.Cells(.Rows.Count, "A").End(xlUp).Row, 5)), Type:=xlFillDefault Application.Calculate .Range(.Cells(4, 2), .Cells(.Cells(.Rows.Count, "A").End(xlUp).Row, 5)).value=_ .Range(.Cells(4, 2), .Cells(.Cells(.Rows.Count, "A").End(xlUp).Row, 5)).value End With Application.EnableEvents = True[sub] End Sub
[/vba] Если нет, то нужно писать код который посчитает то, что нужно, там, где надо, и выведет результат туда, куда требуется. bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Понедельник, 31.01.2022, 14:26
Ответить
Сообщение Длительность операции приемлема? Если да, то [vba]Код
Sub Макрос2() Application.EnableEvents = False With Worksheets("Лист3") .Cells(4, 2).FormulaR1C1 = "=COUNTIF(Лист1!C39,Лист3!RC[8])" .Cells(4, 2).AutoFill Destination:=.Range(.Cells(4, 2), .Cells(4, 5)), Type:=xlFillDefault ' Range("B4:E4").Select .Range(.Cells(4, 2), .Cells(4, 5)).AutoFill Destination:=.Range(.Cells(4, 2), _ .Cells(.Cells(.Rows.Count, "A").End(xlUp).Row, 5)), Type:=xlFillDefault Application.Calculate .Range(.Cells(4, 2), .Cells(.Cells(.Rows.Count, "A").End(xlUp).Row, 5)).value=_ .Range(.Cells(4, 2), .Cells(.Cells(.Rows.Count, "A").End(xlUp).Row, 5)).value End With Application.EnableEvents = True[sub] End Sub
[/vba] Если нет, то нужно писать код который посчитает то, что нужно, там, где надо, и выведет результат туда, куда требуется. Автор - bmv98rus Дата добавления - 30.01.2022 в 22:48
rtv206
Дата: Воскресенье, 30.01.2022, 23:40 |
Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
bmv98rus , благодарю за помощь!
bmv98rus , благодарю за помощь!rtv206
Ответить
Сообщение bmv98rus , благодарю за помощь!Автор - rtv206 Дата добавления - 30.01.2022 в 23:40
bmv98rus
Дата: Понедельник, 31.01.2022, 14:27 |
Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
rtv206 , там микро ошибка была. Range("B4:E4").Select - не нужен совсем.
rtv206 , там микро ошибка была. Range("B4:E4").Select - не нужен совсем.bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение rtv206 , там микро ошибка была. Range("B4:E4").Select - не нужен совсем.Автор - bmv98rus Дата добавления - 31.01.2022 в 14:27
RAN
Дата: Понедельник, 31.01.2022, 19:11 |
Сообщение № 11
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
.Cells(4, 2).FormulaR1C1 = "=COUNTIF(Лист1!C39,Лист3!RC[8])"Так вот и нужно чтобы формулы не было. А расчет происходил в коде
Для этого необходимо производить все вычисления в коде. Ведмедик, а пошто?Range(отсюда до сюда)=Formula(такая-то)
Это, конечно, не совсем то, но [vba]Код
Range(отсюда до сюда.FormulaR1C1 = " Правильная FormulaR1C1"
[/vba] вполне себе работает.
.Cells(4, 2).FormulaR1C1 = "=COUNTIF(Лист1!C39,Лист3!RC[8])"Так вот и нужно чтобы формулы не было. А расчет происходил в коде
Для этого необходимо производить все вычисления в коде. Ведмедик, а пошто?Range(отсюда до сюда)=Formula(такая-то)
Это, конечно, не совсем то, но [vba]Код
Range(отсюда до сюда.FormulaR1C1 = " Правильная FormulaR1C1"
[/vba] вполне себе работает. RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение .Cells(4, 2).FormulaR1C1 = "=COUNTIF(Лист1!C39,Лист3!RC[8])"Так вот и нужно чтобы формулы не было. А расчет происходил в коде
Для этого необходимо производить все вычисления в коде. Ведмедик, а пошто?Range(отсюда до сюда)=Formula(такая-то)
Это, конечно, не совсем то, но [vba]Код
Range(отсюда до сюда.FormulaR1C1 = " Правильная FormulaR1C1"
[/vba] вполне себе работает. Автор - RAN Дата добавления - 31.01.2022 в 19:11
bmv98rus
Дата: Вторник, 01.02.2022, 08:29 |
Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
согласен, в нотации R1C1 тут можно, да даже и нужно , так как быстрее получится. Лучше так. [vba]Код
Sub Макрос2() Application.EnableEvents = False With Worksheets("Лист3") With .Range(.Cells(4, 2), .Cells(.Cells(.Rows.Count, "A").End(xlUp).Row, 5)) .FormulaR1C1 = "=COUNTIF(Лист1!C39,Лист3!RC[8])" Application.Calculate .Value = .Value End With End With Application.EnableEvents = True End Sub
[/vba]
согласен, в нотации R1C1 тут можно, да даже и нужно , так как быстрее получится. Лучше так. [vba]Код
Sub Макрос2() Application.EnableEvents = False With Worksheets("Лист3") With .Range(.Cells(4, 2), .Cells(.Cells(.Rows.Count, "A").End(xlUp).Row, 5)) .FormulaR1C1 = "=COUNTIF(Лист1!C39,Лист3!RC[8])" Application.Calculate .Value = .Value End With End With Application.EnableEvents = True End Sub
[/vba] bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Вторник, 01.02.2022, 12:46
Ответить
Сообщение согласен, в нотации R1C1 тут можно, да даже и нужно , так как быстрее получится. Лучше так. [vba]Код
Sub Макрос2() Application.EnableEvents = False With Worksheets("Лист3") With .Range(.Cells(4, 2), .Cells(.Cells(.Rows.Count, "A").End(xlUp).Row, 5)) .FormulaR1C1 = "=COUNTIF(Лист1!C39,Лист3!RC[8])" Application.Calculate .Value = .Value End With End With Application.EnableEvents = True End Sub
[/vba] Автор - bmv98rus Дата добавления - 01.02.2022 в 08:29
rtv206
Дата: Вторник, 01.02.2022, 21:25 |
Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
bmv98rus , RAN , Благодарю!!!
bmv98rus , RAN , Благодарю!!!rtv206
Ответить
Сообщение bmv98rus , RAN , Благодарю!!!Автор - rtv206 Дата добавления - 01.02.2022 в 21:25