Excel 如何使用';匹配';在VBA中查找列末尾的第一个单元格?

Excel 如何使用';匹配';在VBA中查找列末尾的第一个单元格?,excel,vba,Excel,Vba,基于Excel的: 我在Excel中使用{=MATCH(0,INT(A:A),0)}来选择列A中最后一个填充单元格之后的第一行(注意,最后一个值后面是0或空白单元格,这就是我使用INT()的原因)。这工作得很好,但是我在VBA中复制它时遇到了困难 这将是一个非常简单的修复,但我不能完全得到它!提前谢谢 我在VBA中的尝试: Application.Match(0, Int(Sheets("Sheet1").Range("A:A").FormulaArray), 0) 在VBA中复制公式并不是一

基于Excel的:

我在Excel中使用{=MATCH(0,INT(A:A),0)}来选择列A中最后一个填充单元格之后的第一行(注意,最后一个值后面是0或空白单元格,这就是我使用INT()的原因)。这工作得很好,但是我在VBA中复制它时遇到了困难

这将是一个非常简单的修复,但我不能完全得到它!提前谢谢

我在VBA中的尝试:

Application.Match(0, Int(Sheets("Sheet1").Range("A:A").FormulaArray), 0)

在VBA中复制公式并不是一个简单的修复方法,因为它是Excel中的数组公式,并且由于函数
INT
的缘故,您必须循环遍历每个单元格

(未测试)要在VBA中查找列中的最后一个单元格,请执行以下操作:

set myCell = Cells(Rows.Count,1).end(xlup)
并查找第一个空单元格:

set myCell = Cells(Rows.Count,1).end(xlUp).Offset(1,0)
当然,正如在VBA尝试中一样,对工作表进行限定是适当的,也是首选的

With worksheets("Sheet1")
   set myCell = .Cells(.Rows.Count,1).end(xlup)
end with
这应该起作用:

Debug.Print Sheets("Sheet1").Evaluate("MATCH(0,INT(A:A),0)")

不要使用
应用程序。评估
表单,除非您特别希望在任何一张工作表恰好处于活动状态的上下文中评估公式。

这就是我想要的。谢谢你的快速回复!谢谢你的帮助,Ron,但是当列中有0的值时(我想忽略它)@jwem93我只是检查该单元格的值是否为零。