0

実行中のコードに基づいて、複雑な数式を + から = に変更しようとしています。

現在、cells(5,3).formula は +(ABS(Q29)*G29) ですが、これを実行すると Run-time Error '424': Object required というエラーが表示されます。ウォッチ パネルで、Left(Cells(5,3).Formula,1) は「+」を返し、「+」を「=」に設定するとコードが中断します。

If Left(Cells(5, 3).Formula, 1) = "+" Then
Left(Cells(5, 3).Formula, 1) = "="

編集済み:コードのスペルミスではありません

4

3 に答える 3

1

私はアプリ用の VBA をあまり使いませんが、VBScript では Left(..) は左の文字を返します。これは、何かを割り当てる意味がありません。次のようなことを試すことができます:

Cells(5, 3).Formula = "=" & Right(Cells(5, 3).Formula, Len(Cells(5, 3).Formula) - 1)

これにより、Forumla が Formula の現在の値に設定され、最初の文字が「=」に置き換えられます。

于 2013-06-21T15:13:32.827 に答える
1

このソリューションも機能します。

Cells(5, 3).Formula = "=" & Cells(5, 3).Formula

これは保持されます+が、式は で始まる場合にも有効です=+

于 2013-06-21T15:15:34.187 に答える
0

関数を使用しMidて、「+」を「=」に置き換えることができます。次のようになります。

Cells(5, 3).Formula = "=" + Mid(Cells(5, 3).Formula, 2, Len(Cells(5, 3).Formula) - 1)

ただし、Mike J の回答Rightは読みやすく、おそらくより効率的です。

于 2013-06-21T15:14:17.073 に答える