2012-01-08 144 views
2

我已經多次運行這個問題並且仍然沒有找到解決方案,或者爲什麼這樣做不起作用。我想用細胞的方法輸入公式通過柱,所以我這樣寫:(只是一個例子)VBA Excel R1C1Formulas使用單元格方法

With ws 
     iEndCol = .cells(4650,1).End(Xlup).Column 
     For i = 2 To iEndCol 
      .Cells(i, 2) = "=VLOOKUP([RC-1],Somesheet!someTable,10,FALSE)" 
     Next 
    End With 

當這種這麼想的工作(方法誤差)我嘗試這樣:

Cells(i,2).Select 
    Do While IsEmpty(ActiveCell.Offset(0, -1)) = False 
     ActiveCell.Formula = "=VLOOKUP([RC-1],Somesheet!someTable,10,FALSE))" 
     ActiveCell.Offset(1, 0).Select 
    Loop 

或代替.Formula,我嘗試.FormulaR1C1,.Formulalocal等,這也不起作用。那麼這是什麼工作:

Range("B2").Select 
     Do Until IsEmpty(ActiveCell.Offset(0, 5)) And IsEmpty(ActiveCell.Offset(0, 6)) 
      If IsEmpty(ActiveCell) = False Then 
       ActiveCell.Offset(0, 1).Formula = "=VLOOKUP(B2,Somesheet!someTable,10,FALSE)" 
      End If 
      ActiveCell.Offset(1, 0).Select 
     Loop 

什麼是我不理解使用單元格輸入公式?

回答

2

使用Excel界面(不是您的代碼)輸入公式。

現在轉到代碼編輯器,按Ctrl + G,然後鍵入:? activecell.FormulaR1C1

結果,=VLOOKUP(RC[-1],Somesheet!sometable,10,FALSE),會告訴你,你在做什麼錯。您沒有提供正確的RC語法。如此說,您應該始終確保您的公式語法與您選擇用於設置該公式的屬性相匹配。對於.Formula使用A1符號,對FormulaR1C1使用RC符號。並且不要使用.Value來設置公式。

+0

問了一個問題,並瞭解了6件事情。非常感謝 – Bippy 2012-01-08 23:37:05

1

首先,下面爲我工作:

Set oCell = ActiveCell 

Do 
    Set oCell = oCell.Offset(0, 1) 
    oCell.FormulaR1C1 = "=VLOOKUP(RC[-1],SomeTable,10,FALSE)" 
    Set oCell = oCell.Offset(1, -1) 
Loop Until IsEmpty(oCell) 

注意,在我的語法,我認爲SomeTable與工作簿範圍定義的名稱,因此我不需要前綴。如果SomeTable是一個限定在特定工作表範圍內的已定義名稱,那麼您需要在工作表名稱前添加(例如Somesheet!SomeTable)。

其次,您應該驗證在哪個單元格中試圖使用Debug.Print oCell.Address來輸入公式。可能會出現這種情況,它試圖將公式填入第一列,這會導致公式中出現錯誤。

相關問題