如何查找LOOKUP找到的单元格的地址?

时间:2017-12-10 16:14:32

标签: excel-vba vba excel

我使用以下公式获取列中的最后一个非零值:

`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返回的单元格的地址?非常感谢你提前。

2 个答案:

答案 0 :(得分:1)

此工作表公式将为 H 列中大于零的最后一个值提供地址

="H"&LOOKUP(2,1/(H:H>0),ROW(H:H))

enter image description here

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