2014-09-19 84 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