/ / Excelマクロ:数式の変更とセグメントの追加-Excel、VBA、Excel-VBA、Excel-Formula

Excelマクロ:数式の修正とセグメントの追加 - Excel、Excel、Excel、Excel、Excel

Excelワークシートで、最後の文字を削除し、それに追加の基準を追加することにより、いくつかの数式を変更したいと思います。

基本的に、次の代わりに:

=SUMIFS(A1:A10, B1:B10, "", C1:C10, "Test")

私はを頂きたい:

=SUMIFS(A1:A10, B1:B10, "", C1:C10, "Test", C1:D10, "Test2")

VBAに関する知識が全般的に不足していることを考えると、「理解できないようです。...次のエラーが発生します。

Sub AppendCriterion()
Dim a As String
a = Right(Selection.Formula, Len(Selection.Formula) - 1)
a = Selection.Formula + ", C1:D10, "Test2")"
Selection.Formula = a
End Sub

回答:

回答№1は2

これについては順を追って説明しますが、将来的にはDebug.PrintとF8(ステップイン)を使用してコードのトラブルシューティングを行うことをお勧めします。

3行目:

a = Right(Selection.Formula, Len(Selection.Formula) - 1)

これは実際には左側から1文字を減算します。

Input: =SUMIFS(A1:A10, B1:B10, "", C1:C10, "Test")
Output: SUMIFS(A1:A10, B1:B10, "", C1:C10, "Test")

だから、変更 Right(..)Left(...)

Input: =SUMIFS(A1:A10, B1:B10, "", C1:C10, "Test")
Output: =SUMIFS(A1:A10, B1:B10, "", C1:C10, "Test"

)が削除されたので、新しい基準を追加する行4に進みましょう。

行4

a = Selection.Formula + ", C1:D10, "Test2")"

これに関するいくつかの注意、文字列に引用文字を表示したい場合、引用符でエスケープする必要があり、少し混乱します。また、あなたが設定している a = Selection.Formula + ..これはオリジナルであり、3行目で変更した文字列ではありません。最後に、新しく追加した基準はC1:D10であり、計算エラーが発生します。D1:D10が必要です。

a = a + ", D1:D10, ""Test2"")"

最終回答

Sub AppendCriterion()
Dim a As String
a = Left(Selection.Formula, Len(Selection.Formula) - 1)
a = a + ", D1:D10, ""Test2"")"
Selection.Formula = a
End Sub