Excel .找到最佳/最佳实践方法,从一个范围中读取多个项目
我已经读到,从工作簿中来回执行的操作可能会非常密集。在可能的情况下,试着从工作表中读取您需要的内容,然后从工作表中执行您需要的操作。下面是我的代码摘录,我想知道是否有一种最佳实践方法来完成下面的工作,或者我所做的是不是应该这样做Excel .找到最佳/最佳实践方法,从一个范围中读取多个项目,excel,vba,Excel,Vba,我已经读到,从工作簿中来回执行的操作可能会非常密集。在可能的情况下,试着从工作表中读取您需要的内容,然后从工作表中执行您需要的操作。下面是我的代码摘录,我想知道是否有一种最佳实践方法来完成下面的工作,或者我所做的是不是应该这样做 CI = Sheets(OperatingCostsSheet).Range("B5:B8").Find(WHAT:=LOB, MatchCase:=False).Offset(0, 1) CC = Sheets(OperatingCostsSheet).Range("
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)
谢谢。我认为您甚至不会注意到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