2つの異なるブックのExcelスプレッドシートの最初の列にあるタグ番号に基づいて特定のデータを比較しようとしているスクリプトがあります。最初のブックにアクセスしようとすると、うまく機能し、次のコマンドを使用してセル内のデータに正しくアクセスできます。
s_WS_string = Workbooks(s_WS_Filename).Sheets(s_WS_SheetName).Range(s_WS_col & s_WS_row).Value
ここs_WS_col
で、およびs_WS_row
はVBAスクリプトで定義された文字列です。このコマンドはデータを正常に取得します。でも、
OURS_string = Workbooks("OURS.xlsx").Sheets("Sheet1").Range(s_OURS_col & s_OURS_row).Value
ではない。s_OURS_col
両方ともs_OURS_row
文字列です。WS
ワークシートを表します。これは、静的シートと比較される可変ワークOURS.xlsx
シートです。
これらは両方ともまったく同じコマンドであり、まったく同じタイプのパラメーターが渡されますが、一方はセルからデータを取得し、もう一方は取得しません。結局のところ、アップロードのために別の環境で複製しているところです。
2つの文字列は互いに比較され、一致しない場合は、連結されて複製されたワークシートに出力されます。私の出力と私自身のデバッグに基づいて、最初のスプレッドシートで値が見つかることがわかりましたが、静的なスプレッドシートOURS.xlsx
では、まったく同じデータを含むセルにアクセスしても、空のままになるため、空のままになります。一致しないと見なされます。
他の誰かがこの問題を見たことがありますか?
編集1:いくつかの問題を明確にしました。
編集2:この方法でアクセスするには、両方のブックを開く必要があることを理解しています。スクリプトの実行中に両方を開くことを保証します。
編集3:値にアクセスするための引数を渡すところまでスクリプトをステップスルーしました。渡された両方のセルの値を確認しましたが、一致していますが、一方がブックから正しくプルされていません。