2016-06-15 145 views
0

我試圖填補細胞具有像這樣循環:灌裝與循環細胞VBA Excel中

For i = 1 To Target 
    Range("C" & i & ":C" & i).Formula = "='Sheet1'!A" & i & "/" & "'Sheet2'!B" & i" 
Next i 

而且我希望看到的是,在公式編輯欄中:

=」工作表Sheet '!A1 & 「/」 & 'Sheet 2中'!B1

=' Sheet 1' 中!A2 & 「/」 & 'Sheet 2中'!B2

...

不幸的是,它不工作。如果我嘗試只喜歡第一部分:

For i = 1 To Target 
    Range("C" & i & ":C" & i).Formula = "='Sheet1'!A" & i 
Next i 

該代碼產生這很好,但是這是不夠的,我:

= '工作表Sheet1' A1

='工作表Sheet1 「!B1

...

什麼是錯我弗里斯特代碼?

+0

像這樣以前從未在網站上詢問過...... –

回答

0

你可以嘗試

Range("C" & i & ":C" & i).FormulaR1C1 = "=Sheet1!RC1 & ""/"" & Sheet2!RC2" 
+0

RC1是什麼意思?如何在我的示例中使用「我」迭代器進行迭代? – Twi

+0

我想出R表示行和C列,但如果我這樣做: R&I&C2不起作用。 – Twi

+0

在你的例子中,你使用了a1和b1,然後是a2和b2等,我的解決方案做到了這一點(在c1中,然後是c2等) – brettdj

0

如果你有在一個連接字符串,用雙引號麻煩,我sugest您刪除很多,你可以。可以用Chr function的ASCII碼參考單個字符。該/字符是47

Dim i As Long, target As Long 

With ActiveSheet 
    target = .Cells(Rows.Count, "A").End(xlUp).Row 
    For i = 1 To target 
     .Range("C" & i).Formula = "='Sheet1'!A" & i & Chr(47) & "'Sheet2'!B" & i 
    Next i 
End With 

你不必通過一系列遞增是公式正確構造。可以使用xlA1或xlR1C1參考樣式(請參閱xlReferenceStyle enumeration)。

Dim i As Long, target As Long 

With ActiveSheet 
    target = .Cells(Rows.Count, "A").End(xlUp).Row 
    'xlA1 style 
    .Range("C1:C" & target).Formula = "='Sheet1'!A1/'Sheet2'!B1" 
    'xlR1C1 Style 
    .Range("C1:C" & target).FormulaR1C1 = "='Sheet1'!RC1/'Sheet2'!RC2" 
End With 

注意的xlR1C1風格需要Range.FormulaR1C1,而不是Range.Formula

+0

他們都不工作。問題是,我想在小區看到,如果我注視該公式:! =「工作表Sheet1」 A1&「/」&「Sheet2的」 B1 如果我期待值的單元格的外觀像這樣的東西: 105/12。 105 from Sheet1 A1 cell,/是字符,12是來自Sheet 2 B2 您編寫的這些解決方案不會這樣做,因爲_&_和_「_字符不會寫入單元格公式中,因爲VBA解釋那些人物。 – Twi