ActiveCell.FormulaR1C1 =" = LEFT(RC [11],3)"
以上工作方式我想要它。但是当我改变它(下面)时,我可以循环遍历文件,循环变量是' r'我得到了预期的结束声明'。我试图做的事情有什么问题吗?
' ActiveCell.FormulaR1C1 =" = LEFT(!R"& CStr(r)&" C11",3)"
答案 0 :(得分:1)
您似乎试图将第11列中的左侧三个字符存储在远离活动单元格的位置。
如果循环遍历行(R),您所要做的就是替换活动单元格中的公式r次。最终的r最终将被设置为活动单元格中的公式。
您是否尝试浏览每一行并将左侧三个字符从第11列保存到右侧?
如果是这样,您可以尝试ActiveCell.Offset(row,col)。 您可以使用以下内容遍历行: ActiveCell.Offset(1,0).activate
您可以将公式存储在原始列中: ActiveCell.Formula =" = LEFT(RC [11],3)"
如果您跟踪循环次数,可以使用以下命令返回起点: ActiveCell.OffSet( - (myRowCount),0).Activate
您还可以测试ActiveCell.value,看看您是否在数据末尾。
答案 1 :(得分:0)
你混淆了几个角色。这是解决方案:
ActiveCell.FormulaR1C1 = "=LEFT(R[" & CStr(r) & "]C[11],3)"