はここに私のジレンマです:更新セルの数式を追加セル/行の値に基づいて
私はロン・デ・ブルーインから新しい行/セルの数式を追加し、それは見事に動作します続いています。しかし、私は新しいセルに入力された値を取り込み、計算で使用しています...新しいセルも追加されています。私はコードを過ぎて、私は以下参照しています:
rng.Parent.Cells(LastRow + 1, LastCol + 2).Value = spm
rng.Cells(LastRow + 1, LastCol + 2).Borders(xlDiagonalDown).LineStyle = xlNone
rng.Cells(LastRow + 1, LastCol + 2).Borders(xlDiagonalUp).LineStyle = xlNone
With rng.Cells(LastRow + 1, LastCol + 2).Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With rng.Cells(LastRow + 1, LastCol + 2).Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With rng.Cells(LastRow + 1, LastCol + 2).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With rng.Cells(LastRow + 1, LastCol + 2).Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
rng.Cells(LastRow + 1, LastCol + 2).Borders(xlInsideVertical).LineStyle = xlNone
rng.Cells(LastRow + 1, LastCol + 2).Borders(xlInsideHorizontal).LineStyle = xlNone
With rng.Cells(LastRow + 1, LastCol + 2)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
rng.Parent.Cells(LastRow + 1, LastCol + 3).Locked = False
Range("K8").Value = tsqs
Range("L8").Value = spm
'Calculate value for Man Hours per Item
rng.Parent.Cells(LastRow + 1, LastCol + 3).Formula = <<still working on this bit>>
だから、基本的に私は疑問に思ってすることです: 1.どのように私は(コラム3 & 4に新セル)のセルに数式を追加することになります新しく作成された2つのセルの値を使用しますか?
基本的なレイアウト:
行16、列A(プリセットテキスト入力)|列B(InputBoxはセル値を生成する)|列C(InputBoxはセル値を生成する)|列D(B * Cを計算する数式)|列E(D * Bを計算する計算式)
VBAで計算する数式を得ることができますが、これは問題ではありません。私の問題は、列B/Cの新しく作成されたセルの値をユーザーが変更すると、列Dの新しく作成されたセルの式を更新する方法/ & E?
私はWorksheet.Calculateを使用することを考えていましたが、VBA計算ではうまくいかないかどうかはわかりません。
Sub()を投稿して必要があるかどうか確認することができます。
いくつかのオプションがあります。 VBAを使用して、 'Cell.Formula =" = B3 * C3 "'などの式を書くことができます。または、計算関数を[volatile]としてマークすることもできます(http://www.excel-easy.com/vba/examples/volatile -functions.html)。 –
私はこれを正しく読んでいるとは思わない...あなたはD = Eで式= "= B#* C#"の動的計算をしていますか?これが当てはまる場合は、C/Bで使用されているすべての値を取るため、この問題は表示されません。私がこの間違ったことを理解していれば、D/Eを動的であると記入するのはなぜですか?私はあなたが最後の行に計算を記入することができるか、または特定の行だけにこの方程式を持たせたいのか分かりません。 – Cyril
偉大な応答ありがとう!私はできるだけ早く答えようとします:@ destination-data:私は次のものを使用しました(私はあなたの提案に似ていると思っています、私は今晩家に帰るときにそれを試してみます) 'rng.Parent。セル(LastRow + 1、LastCol + 2).formula = "= ..." '結果として、各行とセルが追加された式の「文字通りの」コピーが得られました。つまり、Cellに返される値はRow 16(正しい)と同じです。そして17,18,19など。正しい行ソースの式を「更新」しませんでした。 –