如何在 VBA 中编写代码以获得多线程解析?
我看过this tutorial ,但它不起作用。
我有 10000 个站点,每个站点位于 A 列的一行中。我需要至少 10 个并发线程来解析标签之间的信息 <div></div>
,取标签<a>
与 rel="external"
来自每个站点上的index.php,然后将结果保存到B列中的每一行。
最佳答案
您可以在 VBA 中使用多线程,但不能在 native 中使用多线程。但是,在 VBA 中实现多线程有多种可能性:
- C#.NET COM/dlls - 在 C#.NET 中创建 COM/dll,它允许您自由创建线程并像其他外部库一样从 VBA 引用它。请参阅我的帖子:here 。 另请参阅有关从 VBA 中引用 C# 方法的 Stackoverflow 帖子:Using a C# dll inside EXCEL VBA
- VBscript 工作线程 - 将您的算法划分为所需线程数量的 VBscript,并从 VBA 执行它们。 VBscript 可以通过 VBA 自动创建。请参阅我的帖子:here
- VBA 工作线程 - 根据需要多次复制 Excel 工作簿,并通过 VBA 中的 VBscript 执行它们。 VBscript 可以通过 VBA 自动创建。请参阅我的帖子:here
我分析了所有这些方法,并对优缺点和一些性能指标进行了比较。您可以在这里找到整篇文章:
http://analystcave.com/excel-multithreading-vba-vs-vbscript-vs-c-net/
关于VBA Excel 中的多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19159025/