如何通过宏把sheet2!B列最后一行非零单元格的值写入当前单元格sheet1!a5?希望给一段宏

如何通过宏把sheet2!B列最后一行非零单元格的值写入当前单元格sheet1!a5?希望给一段宏代码,不胜感激

Sub CopyValue()
Dim ws1 As Worksheet, ws2 As Worksheet

Set ws1 = ActiveWorkbook.Sheets(1)
Set ws2 = ActiveWorkbook.Sheets(2)

Dim nLastRow As Integer
nLastRow = ws2.UsedRange.Rows.Count '获取sheet2最后一行行号

If ws2.Range("B" & nLastRow).Value <> "0" And ws2.Range("B" & nLastRow).Value <> "" Then '如果非零或者非空

ws1.Range("A5").Value = ws2.Range("B" & nLastRow).Value
End If

MsgBox "Copy Done!"
End Sub追问

感谢你的热心帮助。我是菜鸟,为了让我有举一反三的学习效果,你能把每句代码的意思给我解释一下吗?先谢了

追答

1.先定义两个变量ws1 ws2代表两个sheet页
2.将ws1设置成第一个sheet页 ws2第2个sheet页。
3.获取sheet2最后一行行号

4.如果ws2(第二个sheet)B列最后一行 不是空或者不为0 则把这个值填到第一页的A5中
5.弹一个对话框 告诉你复制完毕了

其实都是很基本的语句,建议稍微看看VBA入门书籍就能懂.
加油~

追问

谢谢,你解释得通俗易懂,使我受益非浅,真的感谢。不过在我这里,代码里再加上循环语句才能找到B列最后一行非零单元格,不知是否我哪里操作不对

公式:=lookup(2,1/(A1:A10""),A1:A10)
可以返回A1:A10最后一行非空单元格的值,
如何解释呢?我不知道Lookup函数还有这种用法的。我弄不通其中的来龙去脉。

所以还是直接找你帮忙好

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-16
追问

第2个回答  2014-12-16
追问