Suggestions on how to run a very large Macro

1

I have an excel macro that I've estimated could take anywhere from 2-7 days (with my current computer) if I've received enough data to process.

Is this a feasible task with my Windows 10 Toshiba i3 processor?

I went into Task Manager and set my Excel application priority level to 'realtime'. I also changed my computer's power settings to maximum. One, or both of these helped immensely as I finished the test run at just 9 seconds, compared to the 60 seconds' runs I have tried before.

Any other suggestions? I plan on just keeping my computer plugged in, and making sure it doesn't ever fall asleep or log out.

Perhaps I should lower all other applications' priority levels to the minimum?

bmende

Posted 2015-09-22T04:56:50.753

Reputation: 213

If you have code you are able to share then consider asking on http://codereview.stackexchange.com. "If you are looking for feedback on a specific working piece of code from your project in the following areas…

Best practices and design pattern usage
Security issues
**Performance**
Correctness in unanticipated cases

"

– DavidPostill – 2015-09-22T09:09:42.727

Answers

1

You've done what you can. I know, I speak from experience, much of the work I do is also in Excel VBA processing large volumes of data.

I'm amazed that you got things from 60 to 9 seconds. That's almost an order of magnitude improvement. I can see how changing power settings on a laptop could accomplish that. Nice.

Lowering process priorities won't help much unless those processes are actually doing stuff. If all processes are mostly idle anyway, then lowering their priorities won't do anything (after all, they're already idle!)

If you're concerned at things taking days to process, the best thing you can do now is optimize your code. You should try isolate the parts of your code that consume most time, and focus on those. If you need advice, and don't mind sharing bits of code, ask at Stack Overflow.

misha256

Posted 2015-09-22T04:56:50.753

Reputation: 10 292