关于application.match vba十进制数的错误2042

我无法将范围的最大值匹配到相同的范围内。 这样做的目的是要知道哪一列我可以find最大值。

即时通讯与这个代码尝试

Set rango = Range(Cells(45, W), Cells(46, W1)) rango.Select maximo = WorksheetFunction.Max(rango) matching = Application.Match(CLng(maximo), Sheets("Dinamicos").Range(Cells(45, W), Cells(46, W1)), 0) 

但是我得到了2042错误。 在这一节即时我试图匹配百分比,如果我使用的代码

  Set rango = Range(Cells(45, W), Cells(46, W1)) rango.Select maximo = WorksheetFunction.Max(rango) matching = WorksheetFunction.Match.Match(CLng(maximo), Sheets("Dinamicos").Range(Cells(45, W), Cells(46, W1)), 0) 

我得到运行时错误1004无法获取WorksheetFunction的匹配属性

CLng转换为一个长整数本质上是斩断任何小数。 使用CDbl转换为一个双。

 dim maximo as double, matching as variant with worksheets("sheet1") maximo = WorksheetFunction.Max(.Range(.Cells(45, W), Cells(.46, W1))) end with with worksheets("Dinamicos") matching = Application.Match(CDbl(maximo), .Range(.Cells(45, W), .Cells(46, W)), 0) if not iserror(matching) then 'found a match in W; do something debug.print "found in W" else matching = Application.Match(CDbl(maximo), .Range(.Cells(45, W1), .Cells(46, W1)), 0) if not iserror(matching) then 'found a match in W1; do something debug.print "found in W1" end if end if end with 

你也在Sheets("Dinamicos").Range(Cells(45, W), Cells(46, W1))留下了一些悬挂的单元格引用Sheets("Dinamicos").Range(Cells(45, W), Cells(46, W1))我试图将上面的Sheets("Dinamicos").Range(Cells(45, W), Cells(46, W1))拉紧。