SeoTools with VBA in Async mode?


#1

Has anyone managed to get SeoTools working with VBA in Async mode? I've tried all sorts of things without success.

The main problem is that Excel doesn't start fetching data after I've inserted the formula in a cell. If I put a breakpoint in the code and break immediately after inserting the formula, I can see that the formula cell is stuck on "#GETTING_DATA", no matter how long I wait. If, while still in break mode, I select the formula cell, click in Excel's formula bar, and press Enter, then fetching begins. But I can't find any way to produce this behaviour in VBA.

One thing I tried is to make the macro terminate (exit) immediately after (a) inserting the formula in the cell, and (b) using Application.OnTime to schedule another macro to run, while leaving the worksheet open. In this case fetching begins after the first macro has exited. This works, but only if I delay execution of the second macro until after fetching is complete. That means having to predict in advance how long fetching will take, which isn't practical.

Any thoughts?


#2

Hi Richard,

If you are seeing "#GETTING_DATA", this means the async is still set to true.

Can you verify that the config.xml file you edited is the same as the path listed in the "About" window?

I have tried all sorts of ways to solve VBA with async formulas but it is a nightmare. Better to stick with single thread to get control of the data at a slight cost in speed.

You can also use this formula (with or without VBA) to make sure async is off:
=SeoToolsGetConfig("/SeoTools/RunAsyncUdfsSynchronously")


#3

Hi Victor. Thanks for replying.

I've been trying to use VBA with Async because I thought that would be faster. If using Async is not a practical option, could you please update your "Working with VBA" page to reflect that.

Perhaps you could also edit your SeoTools.config.xml page a little, as it implies that the relevant file is in the same directory as SeoTools.xll. I didn't read any further down the page, so was editing the wrong copy of SeoTools.config.xml.

Richard.


#4

Apologies, I thought you wanted to use VBA and asked about how to run synchronously.

We state that VBA won't work with async:
https://seotoolsforexcel.com/working-with-vba/

Thanks, updated the description to Seotools32.xll/Seotools64.xll:
https://seotoolsforexcel.com/seotools-config-xml/