これは、Excel の通常の動作とは思えません。これが起こるのを見たことがありません。私はできる限りそれを説明しようとします。
SS-A と SS-B の 2 つのスプレッドシートがあります。SS-A にはワークシート WS-source があり、SS-B にはワークシート WS-dest があり、WS-dest は WS-source からいくつかの式を介してデータを取得します。
SS-B には別のワークシート WS-final があり、これも数式を使用して WS-dest からデータを取得します。なんらかの理由で、WS-final の式の結果は失敗します。これは、WS-final の式が、式の値ではなく WS-dest の式を「参照」するためです。
数式は WS-dest で機能します。WS-dest でスプレッドシートを見ると、セルに数式が表示されず、数式の結果の値が表示されます。ただし、これらの値を使用しようとすると、WS-final の式は失敗します。
この結論に至った経緯: WS-dest は数式を使用していませんでした。フィールドに値を手動で配置しました。WS-final は問題なく動作しました。数日前、WS-dest に手動でデータを詰め込むのではなく、式を使用して WS-source からデータを抽出するようになりました。この変更の前は、WS-final は正常に機能していました。さらに、テスト目的で、WS-dest のいくつかのテスト フィールドを数式から手作業で詰め込んだ値に置き換えました。これにより、WS-final の数式が再び機能しました。WS-final から数式のコピーを取得し、それらを WS-dest の未使用のセルに配置して、数式が機能するようにセル参照を微調整しました。その結果、私は同じ動作を観察しました。
マクロ:
Public Function sbTextToColumn(srcRng As Range) As Variant
Dim vData As Variant
vData = Split(srcTang.Value2, "/")
ReDim Preserve vData(0 To Application.Caller.Columns.Count - 1)
sbTextToColumn = vData
End Function
これは、別の SO メンバーが私を支援してくれた機能であり、うまく機能します! 私は個人的に、Perl や PHP などの言語に強い Linux/Unix 派です。よろしくお願いします。