У меня есть листы с 80*15*5 = 6000
точками данных, созданными из таблиц сводных таблиц Excel. Я должен сделать выбор между программированием в Visual Basic for Applications
и Visual Basic.net
или работать с формулами Excel. Все данные должны анализироваться по-разному, разные вещи должны быть рассчитаны, и пользователь должен иметь возможность генерировать вывод удобным для пользователя способом без какого-либо знания данных.VBA vs VB.net производительность с базой Excel
Небольшая примерная программа с петлей в цикле в цикле стоит 100 секунд в VBA и 34 на Visual Basic.net. Если я собираюсь работать с формулами Excel, мне также нужно запрограммировать несколько функций, потому что они еще не существуют в Excel. Сейчас я делаю это для другой программы, и это довольно медленно на компьютерах моей компании.
Время работы заставляет меня выбирать для VB.net, но будет ли это еще быстрее, если внешняя программа, созданная VB.net, должна установить соединение с базой данных Excel? Относительно простой способ использования этих данных в VBA заставляет меня хотеть выбирать для VBA.
Помимо этого, я полагаю, что работа с формулами Excel не самая удобная, потому что 80
и 15
в формуле выше могут со временем стать более крупными.
Есть ли что сказать вообще о том, почему я должен выбрать, какое решение?
Вы упомянули небольшую примерную программу [a] с циклом в цикле в цикле, который для начала очень неэффективен. Что конкретно вы пытаетесь сделать? Можете ли вы опубликовать код и некоторые примеры данных с ожидаемыми результатами, чтобы мы могли предложить альтернативы? Или, возможно, перейдите к CodeReview, чтобы повысить эффективность вашего кода? Что касается вашего общего вопроса о том, с каким решением идти, трудно сказать без дополнительной информации. Вообще говоря, VB.Net все равно будет быстрее, но мы, возможно, сделаем ваш код или формулы более эффективными. – tigeravatar
Я бы сказал, что вы с наиболее удобным и знакомым. Vb.NET должна быть самой гибкой и мощной, но не означает многого, если вы не можете написать чистый, перфомантный код. – Plutonix
Небольшая программа была просто случайной, которую я сделал, чтобы сравнить время работы. Плутоникс, это имеет смысл. Я много времени занимаю в VBA, так что это самый легкий для меня, но мне нравится улучшать мои знания VB.net. Это заставит меня выбрать для VBA, хотя – Grafit