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