合并表格Excel(父级和子级ID)

时间:2018-01-09 07:40:40

标签: mysql excel vba excel-vba

我有一个问题是用excel合并两个表。 我有一个名为Father的表,带有一个数值,对于那个ID,可能有很多儿子有其他值。我想创建一个第三个表,其中包含父亲的数值以及儿子的姓名及其父亲的身份。

我不确定如何更好地解释它,所以我创建了一个小的EXCEL文件来演示。橙色的桌子是我想要创建的,而蓝色的桌子是我的orignal。

FatherSonID_ExcelExample

我在VBA中创建了一个宏,但它非常低效,我的父/子表包含数千个值,我需要一个更快的方法来创建表。所以希望有人有更快的方式。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我假设如果你有一个低效且耗时的VBA宏来解决这个问题,你可能正在做一些事情:

Dim Rng1 as Range, Rng2 as Range
For X = 1 to 10000
    For Y = 1 to 10000
        If Rng1.Value = Rng2.Value then
                Do Something
        End If
    Next Y
Next X

你应该尝试通过做这样的事来加快速度:

Dim Fathers as Variant, Sons as Variant
Fathers = Range("A1:A10000").Value 'Substitute for your actual range of Father IDs
Sons = Range("B1:B10000").Value 'Substitute for your actual range of Son IDs

For X = 1 to UBound(Fathers, 1)
    For Y = 1 to UBound(Sons, 1)
        If Sons(Y, 1) = Fathers(X, Y) then
                Do Something
        End If
    Next Y
Next X

它看起来不是什么大变化,但你会发现通过定义一个值数组然后对该数组进行操作,你将大大减少这些操作的时间。