0

このエラーを何時間も追跡して解決しようとしましたが、理解できません。これがセットアップです。

「入力」と「計算」の2つのシートを含む1つのExcelワークブックがあります。特定のものを計算するために、いくつかのカスタム関数を作成しました。これらの関数は「Calculations」シートで使用されますが、「Input」シートのセルを参照します。シート自体を使用している場合、すべてが完全に正常に機能し、関数が機能します。

ただし、最初のワークブックとやり取りする 2 番目の Excel ワークブックがあります。最初のブックの「入力」シートで値を定義しようとする 2 番目のブックにマクロがあります。ただし、これを行うと、突然機能が機能しなくなります。「Calculations」シートのセルのエラーを追跡して、「Input」シートのセルに移動しようとすると、参照が無効であると表示されます。

何が問題なのかわかりません。最初は、最初のワークブックの名前 (「Log K Calculator 7.0.0.xlsm」) と関係があるのではないかと思っていましたが、それを変更してみましたが、同じ問題が発生しました。最初の値を変更しようとする 2 番目のシートのマクロは次のとおりです。

Sub macro()

Dim logK As String
Dim this As String
logK = "Log K Calculator 7.0.0.xlsm"
this = ThisWorkbook.Name

Workbooks(logK).Activate

Workbooks(logK).Sheets("Input").Cells(11, 4).Value = Workbooks(this).Sheets(1).Cells(1,   "B").Value
Workbooks(logK).Sheets("Input").Cells(12, 4).Value = Workbooks(this).Sheets(1).Cells(2, "B").Value
Workbooks(logK).Sheets("Input").Cells(14, 4).Value = Workbooks(this).Sheets(1).Cells(3, "B").Value

End Sub
4

2 に答える 2

0

外部ワークブックにある値がExcelでどのように処理されているかを確認することをお勧めします。たとえば、数字をテキストとして扱っているのでしょうか。これを確認するには、入力シートに「10000」、「300」、「600」などを手動で入力し(テキストとして扱い、数字を表示するように強制します)、同じ参照エラーが発生するかどうかを確認します。

その場合、値を型付き変数(Long、Decimal、名前を付けます)にキャストすると、おそらく問題が解決します。または、少なくとも、形式が正しくないものでVBAをチョークします(たとえば、スペースが含まれている場合があります。これにより、明らかな不整合が説明される可能性があります)

于 2012-11-04T23:35:16.217 に答える