2014-09-19 83 views
0

我是VBA的新手,想问你是否可以帮助我。 我有这样的VB6代码:VBA Excel,将公式分配给范围内的行

For i = 2 To rowCount - 2 
     ' Fill Ji with a formula(=MID(Fi,11,9)) and apply format. 
     Set oRng = oSheet.Range(Cells(i, 10), Cells(rowCount - 2, 10)) 
     **oRng.formula = "=MID(Cells(i,6),11,9)"** 
     oRng.NumberFormat = "[$-F400]hh:mm:ss" 
Next i 

我想一个公式分配给尝试这种代码的范围 但是,有一个问题,当我分配公式。它不识别单元格(i,6)为单元格,而是作为字符串“单元格(i,6)”。 任何人都可以帮助我吗?

回答

1

你不想循环为你把公式为所有的细胞在一次:

' Fill Ji with a formula(=MID(Fi,11,9)) and apply format. 
    Set oRng = oSheet.Range(oSheet.Cells(2, 10), oSheet.Cells(rowCount - 2, 10)) 
    oRng.formulaR1C1 = "=MID(RC6,11,9)+0" 
    oRng.NumberFormat = "[$-F400]hh:mm:ss" 

注:我添加了一个+0您的公式将文本转换为真正的时间值。

+0

谢谢你,你是有帮助的 – eviB 2014-09-19 13:07:10

0

尽量"=MID(" & Cells(i,6).Address(False,False) &",11,9)" 包括地址部分只有当你想有一个相对引用

+0

它工作的伟大,感谢 – eviB 2014-09-19 13:05:49

+0

@eviB如果问题解决了,请标记为正确的,谢谢 – DyRuss 2014-09-19 20:02:32