。找到最佳/最佳实践方法来读取范围中的多个项目

时间:2018-07-17 00:10:03

标签: excel vba

我已经读过,从工作簿来回操作可能很费力。并尽可能尝试从工作表中读取所需内容,然后从那里进行所需的操作。这是我拥有的代码的摘录,我想知道是否有最佳实践来执行以下操作,或者我是否已完成该操作。

CI = Sheets(OperatingCostsSheet).Range("B5:B8").Find(WHAT:=LOB, MatchCase:=False).Offset(0, 1)
CC = Sheets(OperatingCostsSheet).Range("B5:B8").Find(WHAT:=LOB, MatchCase:=False).Offset(0, 4)
OS = Sheets(OperatingCostsSheet).Range("B5:B8").Find(WHAT:=LOB, MatchCase:=False).Offset(0, 5)

谢谢。

1 个答案:

答案 0 :(得分:1)

我认为您甚至不会注意到4个单元格中的定位方法之间的差异,但是您应该记录第一个结果的位置并将其用于后续的偏移量分配。您当前基于.Find的代码对匹配/查找没有错误控制。

dim i as variant
with Sheets(OperatingCostsSheet).Range("B5:B8")
    i = application.match(LOB, .cells, 0)  'same as .find with matchcase:=false; returns matching position within B5:B8; e.g. 1 to 4.
    if not iserror(i) then
        CI = .cells(i, 1).Offset(0, 1)
        CC = .cells(i, 1).Offset(0, 4)
        OS = .cells(i, 1).Offset(0, 5)
    end if
end with