【问题标题】:Excel VBA: Find out size of foreign lookup tableExcel VBA:找出外部查找表的大小
【发布时间】:2015-02-24 03:03:48
【问题描述】:

我有一个 Excel VBA 子程序,它(除其他外)将查找公式粘贴到某些单元格中。查找公式目前的形式为

LOOKUP(RC5,lookup.xlsx!Item,lookup.xlsx!R2C:R559C)

但是查找表的大小会改变。有没有好办法求查表的大小,也就是最后一行?

在紧要关头,我想我可以打开查找文件(命令是什么?)然后做

Windows("lookup.xlsx").Activate
last = Range("a65536").End(xlUp).Row    
Windows("whatever.xlsx").Activate

但我不确定是否有更好的方法。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    查找最后使用的单元格在 Excel AFAIK 中名声不好。参见例如 this ,虽然有点过时。如果可以,请务必在最后使用的行中插入一个 EOF 值并进行扫描。

    编辑

    记住:

    • 空值(或空格)可以很好地用作 EOF 标志。一定要保持一致。
    • 您可以始终在查找范围中包含完整的列,并且 Excel 将处理最后(如果您的范围下没有更多使用的单元格。例如在 =LOOKUP(A1,C:C,D:D) 中)李>

    【讨论】:

    • 那么,让 Excel 打开文件的最佳方法是什么?
    • 顺便说一句,没有机会出现 EOF 标记;其他人会有问题的文件,我只能希望工作表保持合理。
    • 等等,LOOKUP(A1,C:C,D:D) 真的有效吗?凉爽的!第 1 行的标题会导致问题吗?
    • @Charles 如果标题包含可以在 LOOKUP 中查找的值,则它们可能会影响结果。在这种情况下,您可以使用 LOOKUP(A1,C2:C10000,D2:D10000)
    • 我认为 Excel 的查找在范围太大时会失败 -- 它在中间找到一个值,发现它是空白的,然后结束。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 2011-08-21
    • 1970-01-01
    • 2017-05-25
    相关资源
    最近更新 更多