VBA excel - range.formula问题

时间:2018-05-27 21:39:18

标签: excel vba formula

我的代码中有一部分我无法工作,

我试图在VBA =RIGHT(LEFT(X1;Z1-2);LEN(LEFT(X1;Z1-2))-FIND(":";X1))

上执行以下命令

在单元格X1上,有一个文字:RESULTS:NG & MODEL:IJ

我的VBA代码是:

LR = Cells(Rows.Count, "A").End(xlUp).Row

For i = 1 To LR
   cel = "A" & i
   cel2 = "Y" & i
   cel3 = "Z" & i
   cel4 = "X" & i

   Range("M" & i).Formula = "=RIGHT(LEFT(" & cel4 & "," & cel3 & "-" & 2 & "),LEN(LEFT(" & cel4 & "," & cel3 & "-" & 2 & "))-FIND(:" & cel4 & "))"

Next i

我也愿意为这个问题找到更好的方法

提前致谢

1 个答案:

答案 0 :(得分:1)

尝试一次编写所有公式,并尽可能减少使用公式中的引号。

   Range(Cells(1, "M"), cells(lr, "M")).Formula = _
     "=RIGHT(LEFT(X1, Z1-2), LEN(LEFT(X1, Z1-2))-FIND(char(58), X1))"

使用正确定义的父工作表引用,子过程中的所有范围和单元格引用都会更好。

dim lr as long
with worksheets("sheet1")
    LR = .Cells(.Rows.Count, "A").End(xlUp).Row
    .Range(.Cells(1, "M"), .cells(lr, "M")).Formula = _
      "=RIGHT(LEFT(X1, Z1-2), LEN(LEFT(X1, Z1-2))-FIND(char(58), X1))"
end with