2012-05-11 18 views
0

Excelスプレッドシートの最初の列のタグ番号に基づいて特定のデータを2つの異なるブックで比較しようとしているスクリプトがあります。私は最初のワークブックにアクセスしようとしていた場合、それは素晴らしい作品、と私は、次のコマンドを使用して、適切にセル内のデータにアクセスすることができますVBAスクリプトを使用してExcelのセルにアクセスできない

s_WS_string = Workbooks(s_WS_Filename).Sheets(s_WS_SheetName).Range(s_WS_col & s_WS_row).Value 

どこs_WS_cols_WS_rowはVBAスクリプトで文字列を定義しています。このコマンドは正常にデータを取得します。ただし、

OURS_string = Workbooks("OURS.xlsx").Sheets("Sheet1").Range(s_OURS_col & s_OURS_row).Value 

はありません。 s_OURS_cols_OURS_rowは両方とも文字列です。 WSは、ワークシートを表します。これは、可変のワークシートであり、静的なOURS.xlsxシートと比較されます。

これらは両方とも同じコマンドであり、まったく同じタイプのパラメータが渡されますが、一方はセルからデータを取得し、もう一方はデータを取得しません。私はアップロードのためにそれを別の環境に複製する過程にあります。

2つの文字列は、互いに比較され、一致しない場合、複製されたワークシートで連結して出力​​されます。私の出力と私自身のデバッグに基づいて、最初のスプレッドシートの値を見つけることができましたが、静的なスプレッドシートOURS.xlsxでは、まったく同じデータを含むセルにアクセスしても空のままです。一致しないとみなされる。

他に誰かがこの問題を見ていますか?

編集1:いくつかの問題を明らかにしました。

編集2:この方法でアクセスするには、両方のブックを開く必要があることを理解しており、スクリプトの実行中に両方のブックが開かれていることを確認します。

編集3:私は、値にアクセスするための引数を渡すポイントまでスクリプトをステップアップしました。私は渡されている両方のセルの値をチェックしていますが、それらは一致しますが、1つはブックから適切に引き出されていません。

+0

セルの値を取得する代わりに、2番目のコマンドは何をしますか?エラーメッセージはありますか? –

+0

エラーメッセージは表示されません。デバッグ中にチェックしたときのように出力するだけです。私はレプリケーションに取り組んできましたが、処理中に余計なバグが発生しているので、まだレプリケートしていません。私はそれに取り組むつもりで、私が持っているときにシートを掲示します。 – valkn0t

答えて

0

少なくとも1つの変数に間違いがあります。 Book1とBook2の2つのブックでケースを作り直して、それぞれSheet1のA1セルに値を追加しました。コードは正常に動作します。

Sub TestCellValueFromWBs() 
    Dim s_WS_string, Ours_string As String 
    s_WS_string = Workbooks("Book1").Sheets("Sheet1").Range("a1").Value 
    MsgBox s_WS_string 

    Ours_string = Workbooks("Book2").Sheets("Sheet1").Range("a1").Value 
    MsgBox Ours_string 
End Sub 

コードを入力して(F8)、変数の値をチェックして、正しいオブジェクトを指していることを確認します。

+0

彼らは、正確に同じデータを含む2つの異なるセルを指しています。特定のセルを通過するまで(ctrl-f8)踏み込み、その特定の時点で渡されている正確なアドレスを調べることによってダブルチェックしますそして、それは誰も何も見ない、そしてもう片方は何もしません。私はほとんどそれを作り直しています、私は少しそれを持っていきます。 – valkn0t

+0

パーフェクト。あなたが準備が整ったら、私は見ていきます。 –

+0

開かれているがアクティブではないブックにアクセスすると、セルにアクセスしている方法に矛盾があることが判明し、私の友人にアップロードされて戻ってこなかったことをお詫びします。解決されました。ご協力ありがとうございました! – valkn0t

関連する問題