我使用以下公式获取列中的最后一个非零值:
`Dim rb as Range
rb ="LOOKUP(2,1/(H:H>1),H:H)"
MsgBox(rb.Address)
MsgBox(rb.Row)
MsgBox(rb.Column)`
很好用。但我想得到那个细胞的地址。我已经尝试过在这里和那里找到几行代码,大多数归结为这样的事情:
for(i in 1:50){
train.cpg.t2 <- sample(nrow(cpg.updated.2), 2/3 * nrow(cpg.updated.2))
cpg.train.t2 <- cpg.updated.2[train.cpg.t2, ]
cpg.test.t2 <- cpg.updated.2[-train.cpg.t2, ]
model.nb2 <- naiveBayes(group ~ ., data = cpg.train.t2)
naive.cpg2<-predict(model.nb2, cpg.test.t2)
myconf<-confusionMatrix(predict(model.nb2, cpg.test.t2), cpg.test.t2$group)
print(myconf)
}
不言而喻,它不起作用。如何找到LOOKUP返回的单元格的地址?非常感谢你提前。
答案 0 :(得分:1)
此工作表公式将为 H 列中大于零的最后一个值提供地址:
="H"&LOOKUP(2,1/(H:H>0),ROW(H:H))
在 VBA :
Sub dural()
MsgBox "H" & Evaluate("LOOKUP(2,1/(H:H>0),ROW(H:H))")
End Sub
答案 1 :(得分:1)
如果你想坚持使用VBA,并使用原始概念,你可以使用当前的Formula
,然后使用Find
函数从最后查找以查找行。
<强>代码强>
Option Explicit
Sub GetAddressofLookup()
Dim FindRng As Range
ActiveSheet.Range("A5").Formula = "= LOOKUP(2,1/(H:H>1),H:H)"
Set FindRng = ActiveSheet.Columns("H").Find(what:=ActiveSheet.Range("A5").Value, Lookat:=xlPart, LookIn:=xlFormulas, _
searchorder:=xlByRows, searchdirection:=xlPrevious, MatchCase:=False)
MsgBox FindRng.Address
End Sub