0

ボタンをクリックするシートがあります。このボタンは、2つのフォーラム文字列(C#Excelアドイン/ UDF)を作成し、それらを2つのセルに貼り付けます。1つ目はデータを作成してキャッシュに保存し、2つ目の関数はExcelキャッシュに挿入されたデータを使用します。問題は、データが挿入される前に、2番目の関数の実行が早すぎることでした。

したがって、リスナーとして機能し、最初のセルの値が編集されたときに関数を作成しました。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target = Sheets("1").Range("A1") Then           'The error is here
        Sheets("1").Cells(5, 1).Calculate
    End If
End Sub

数式/関数文字列を作成するボタンをクリックすると、次のようになります。

実行時エラー「7」:メモリ不足

なぜなのかわかりませんか?エラーの行は次のとおりです。

If Target = Sheets("1").Range("A1") Then

編集ボタンをクリックすると、シートX全体の内容がクリアされたことが原因です。これを回避する方法はありますか?

4

1 に答える 1

0

基本的な問題は、Excel が後入れ先出しの順序で数式を計算することによって再計算を開始することです。そのため、ボタン コードに最初の数式を計算させてキャッシュを作成するのが賢明です (Range.calculate または任意の関数を使用できます)。他の適切な計算方法) を選択してから、2 番目の数式を入力します。

于 2012-07-27T15:11:18.777 に答える