私は、テーブルの最後の行にデータを追加しているExcelでuserformを持っています。最後の行の列14で、私は式を表示することが欲しいと思っていますが、それは常にfalseを読み取っています。私がラストローを取り出してこれを単独のエンティティとして実行すると、これは完全に機能します。FormulaR1C1 reading False
この例では、RC [-1]がブランクであるため、偽ではなく、53を返すべき回答が26.5 * 2であるはずです。
Private Sub CommandButton1_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Primary Data")
iRow = ws.Cells.Find(What:="*", Searchorder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
ws.Cells(iRow, 14).Value = FormulaR1C1 = "=IF(RC[-1]="""",RC[-2]*RC[-3],RC[-2]*RC[-3]*(1-RC[-1]))"
End Sub
誰でもこの問題を手伝ってください。
ティムの答えは、問題を解決しますが、あなたは論理式 'FormulaR1C1 =「= IF(RCの[を実行しているので、**なぜ**あなたのコードが失敗した理由があります - 1] = "" ""、RC [-2] * RC [-3]、RC [-2] * RC [-3] *(1-RC [-1]) "フォーミュラR1C1はneveを持っています(RC [-1] = "" ""、RC [-2] * RC [-3]、RC [-2] * RC [ -3] *(1-RC [-1])) "'これは明らかに 'False'であり、次にそれをセルに割り当てます。 'Option Explicit'を各コードモジュールの最初の行として使用することで、これらの問題を回避できます。それは 'FormulaR1C1'が宣言されていないことを伝えます。 – YowE3K