Добрый день! Помогите, пожалуйста, разобраться со следующей задачей. Таблица "Продажи_tb" заполняется через форму. В таблицу в столбцах Сумма и Сумма накопит уже вбиты формулы. Честно говоря, первый раз сталкиваюсь с необходимостью работы формул через макросы. Единственное понял, что макрорекодер позволяет переводить формулы на англ язык. Больше никак не помог мне. В таблице два вида формул: 1 - которая охватыват весь диапазон данных. Вторая - затрагивает данные только предыдущих строк. Помогите, пожалуйста, заставить формулы рассчитываться в макросе, а в ячейки выводить только результат. Я понимаю, что есть два пути для этого: первый - создать функции, а второй - включить формулу прямо в процедуру. Мне, наверное, более понятный пока будет второй путь, что бы хоть с чего-то начать разбираться.
Добрый день! Помогите, пожалуйста, разобраться со следующей задачей. Таблица "Продажи_tb" заполняется через форму. В таблицу в столбцах Сумма и Сумма накопит уже вбиты формулы. Честно говоря, первый раз сталкиваюсь с необходимостью работы формул через макросы. Единственное понял, что макрорекодер позволяет переводить формулы на англ язык. Больше никак не помог мне. В таблице два вида формул: 1 - которая охватыват весь диапазон данных. Вторая - затрагивает данные только предыдущих строк. Помогите, пожалуйста, заставить формулы рассчитываться в макросе, а в ячейки выводить только результат. Я понимаю, что есть два пути для этого: первый - создать функции, а второй - включить формулу прямо в процедуру. Мне, наверное, более понятный пока будет второй путь, что бы хоть с чего-то начать разбираться.AVI
Добрый день. Если Вам нужны только значения, то вычисляйте их прямо в основной процедуре [vba]
Код
Sub AddSale() ' добавить получателя Dim tabl As Range Set ShUF_Sale = ThisWorkbook.Worksheets("Продажи") Set UF_SaleListObj = ShUF_Sale.ListObjects("Продажи_tb") Set tabl = ShUF_Sale.Range("Таблица4") Set UF_SaleListRow = UF_SaleListObj.ListRows.Add With UF_SaleListRow .Range(1) = UF_Sale.txb_Date.Value .Range(2) = UF_Sale.txb_Seller.Value .Range(3) = UF_Sale.cbx_fruit.Value .Range(4) = UF_Sale.txb_count.Value .Range(5) = .Range(4) * tabl.Find(.Range(3)).Offset(0, 1).Value .Range(6) = .Range(5) + .Range(6).Offset(-1, 0) End With End Sub
[/vba]
Добрый день. Если Вам нужны только значения, то вычисляйте их прямо в основной процедуре [vba]
Код
Sub AddSale() ' добавить получателя Dim tabl As Range Set ShUF_Sale = ThisWorkbook.Worksheets("Продажи") Set UF_SaleListObj = ShUF_Sale.ListObjects("Продажи_tb") Set tabl = ShUF_Sale.Range("Таблица4") Set UF_SaleListRow = UF_SaleListObj.ListRows.Add With UF_SaleListRow .Range(1) = UF_Sale.txb_Date.Value .Range(2) = UF_Sale.txb_Seller.Value .Range(3) = UF_Sale.cbx_fruit.Value .Range(4) = UF_Sale.txb_count.Value .Range(5) = .Range(4) * tabl.Find(.Range(3)).Offset(0, 1).Value .Range(6) = .Range(5) + .Range(6).Offset(-1, 0) End With End Sub
Ведь в умных таблицах формулы автоматически распространяются на вновь добавленные строки. Т.е. достаточно прописать формулу в 1-й строке данных и дальше она сама будет копироваться. Разве не вариант?
Ведь в умных таблицах формулы автоматически распространяются на вновь добавленные строки. Т.е. достаточно прописать формулу в 1-й строке данных и дальше она сама будет копироваться. Разве не вариант?nilem
Ведь в умных таблицах формулы автоматически распространяются на вновь добавленные строки. Т.е. достаточно прописать формулу в 1-й строке данных и дальше она сама будет копироваться. Разве не вариант?
Ну, во первых, если фомула охватывает не весь диапазон в столбце, а, например, только предыдущие строки, то при добавлении строки диапазон ломается. Во вторых, у меня в рабочем файле в одной таблице две не маленьких формулы массива, это помимо других формул, при этом, рабочий файл растет каждый день и формулы, забитые в ячейки, начинают подтормаживать всю работу файла. Ну, а в третьих, я хочу узнать как можно "быстро и не дорого" не имея особых знаний по матчасти, запилить формулу в макрос, что бы результат работы формулы вставал куда надо.
Ведь в умных таблицах формулы автоматически распространяются на вновь добавленные строки. Т.е. достаточно прописать формулу в 1-й строке данных и дальше она сама будет копироваться. Разве не вариант?
Ну, во первых, если фомула охватывает не весь диапазон в столбце, а, например, только предыдущие строки, то при добавлении строки диапазон ломается. Во вторых, у меня в рабочем файле в одной таблице две не маленьких формулы массива, это помимо других формул, при этом, рабочий файл растет каждый день и формулы, забитые в ячейки, начинают подтормаживать всю работу файла. Ну, а в третьих, я хочу узнать как можно "быстро и не дорого" не имея особых знаний по матчасти, запилить формулу в макрос, что бы результат работы формулы вставал куда надо.AVI
Не совсем понятно, что все таки в итоге надо) шашечки или ехать?)
Как раз в этом случае шашечки мне и позволят ехать. Второй Ваш вариант, на первый взгляд, прямо в точку. Потестю его. Если будут вопросы можно их ненавязчиво задать?
Не совсем понятно, что все таки в итоге надо) шашечки или ехать?)
Как раз в этом случае шашечки мне и позволят ехать. Второй Ваш вариант, на первый взгляд, прямо в точку. Потестю его. Если будут вопросы можно их ненавязчиво задать?AVI
в первом было просто ехать, во 2 с шашечками, профессионально - дорого - кругами, для намотки счетчика таксометра)
Я понимаю это, просто я тут пишу на форуме не просто тупо получить ответ. Я хочу разобраться. К сожалению, у меня нет ни образования, я никогда не работал с кодами/программированием. В Excel'е я работал исключительно с формулами, поэтому для меня тут совсем все новое. Но вот решил развиваться и разбираться. Вот и мучаю старожил.
в первом было просто ехать, во 2 с шашечками, профессионально - дорого - кругами, для намотки счетчика таксометра)
Я понимаю это, просто я тут пишу на форуме не просто тупо получить ответ. Я хочу разобраться. К сожалению, у меня нет ни образования, я никогда не работал с кодами/программированием. В Excel'е я работал исключительно с формулами, поэтому для меня тут совсем все новое. Но вот решил развиваться и разбираться. Вот и мучаю старожил.