使用CStr循环

时间:2015-07-06 21:07:59

标签: excel-vba vba excel

ActiveCell.FormulaR1C1 =" = LEFT(RC [11],3)"

以上工作方式我想要它。但是当我改变它(下面)时,我可以循环遍历文件,循环变量是' r'我得到了预期的结束声明'。我试图做的事情有什么问题吗?

' ActiveCell.FormulaR1C1 =" = LEFT(!R"& CStr(r)&" C11",3)"

2 个答案:

答案 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)"