拖动自动填充句柄时,UDF无法按预期工作

时间:2018-02-26 23:52:33

标签: excel-vba user-defined-functions autofill vba excel

我创建了我的第一个UDF。它将在其左侧的单元格中引用IP地址,然后使用Vlookup查找该IP地址的主机名。它看起来像这样:

MapIPtoHost = Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, -1).Value, Range("D2:E3"), 2, False)

要测试此UDF,D2:E3中的表数组只有2行,如下所示......

1.2.3.4    1234.somewhere.com
5.6.7.8    5678.elsewhere.com

...此工作表的单元格A1到A6具有以下IP地址:

1.2.3.4
5.6.7.8
1.2.3.4
5.6.7.8
1.2.3.4
5.6.7.8

非常简单,对吧?

如果我在单元格B1中输入公式“= MapIPtoHost()”,我会按预期获得“1234.somewhere.com”。

1.2.3.4    1234.somewhere.com

同样,如果我在单元格B2中输入公式,我会得到“5678.elsewhere.com”。

5.6.7.8    5678.elsewhere.com

所以,IT工作。耶队!

但是 - 这就是奇怪......

如果不是单独在每个B单元格中输入“= MapIPtoHost()”,而是将其仅放在B1中,然后将填充句柄向下拖动到B6,它的行为与上面不同。现在每个B单元都有相同的主机名,就像这样......

1.2.3.4    1234.somewhere.com
5.6.7.8    1234.somewhere.com
1.2.3.4    1234.somewhere.com
5.6.7.8    1234.somewhere.com
1.2.3.4    1234.somewhere.com
5.6.7.8    1234.somewhere.com

我猜这是UDF的怪癖(特征?)?有人可以帮助这个新手理解为什么UDF和AutoFill似乎没有相处吗?

0 个答案:

没有答案