vba-循环调用函数

时间:2018-07-17 09:08:24

标签: excel vba function loops

我需要循环调用一个自制函数(GetCoordinates),并在每个循环步骤中应用它。

我有一列包含数据(从L2开始),我需要将个人功能GetCoordinates应用于此数据,并将结果写在它旁边的列中(因此从M2开始)

NumRows = Range("L2", Range("L2").End(xlDown)).Rows.Count
      Range("L2").Select
      For x = 1 To NumRows
         Selection.Offset(, 1).Formula = "=GetCoordinates(L&x)"
         ActiveCell.Offset(1, 0).Select
      Next

我的问题是我不知道如何将函数应用于每个单元格。应该如何编写,以便在循环中为每个单元格调用该函数? (GetCoordinates函数可以正常工作)

2 个答案:

答案 0 :(得分:1)

尝试不加循环地放入所有公式。要在M列中编写公式并将L列用作公式参数,请使用

 Range(cells(2, "M"), cells(rows.count, "L").End(xlup).offset(0, 1)).Formula = _
     "=GetCoordinates(L2)"

您自己可能已经更亲近了

Selection.Offset(, 1).Formula = "=GetCoordinates(L" & x & ")"

但是您不匹配Do ... While和For ... Next循环。

答案 1 :(得分:1)

尝试一下

 NumRows = Range("L" & Rows.Count).End(xlUp).Row

  For x = 2 To NumRows
     Cells(x, "M").Value = GetCoordinates(Cells(x, "L"))
  Next