2012-01-08 20 views
2

私はこの問題を何度も繰り返し実行していますが、解決策が見つからないか、またはこれが機能しないのはなぜですか。私は、カラムを通って数式を入力するために、細胞のメソッドを使用したいので、私はこれを書く:(単なる例)VBA Excel R1C1セルメソッドを使用した式

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 

私はこのような何かしようとすると、このdosen'tワーク(方法エラー):

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、.Formalalocalなどを試していますが、これはどちらでも動作しません。次に、これは動作します:

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

1つの質問をし、6つのことを学んだ。どうもありがとう – Bippy

1

まず、以下の私の仕事:私の構文で、私はSomeTableは、ワークブックのスコープで定義された名前だったので、私は何の接頭辞を必要としないと仮定していること

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が特定のワークシートにスコープされた定義名の場合は、シート名の前にプレフィックスを付ける必要があります(例:Somesheet!SomeTable)。

第2に、Debug.Print oCell.Addressを使用して数式を挿入しようとしているセルを確認する必要があります。これは、数式にエラーを引き起こす文字列の最初の列に数式を埋め込むことを試みている場合があります。

関連する問題