2016-04-09 13 views
1

以下は、csvファイルのセルの1つにmy関数を設定するためのコードです。デバッガをチェックすると、変数値が2886として正しく表示されますが、変数が実際にセルで解決されると、値5776(倍精度)が表示されます。Excel値デバッガと実際のセル値の異なる値(実際には値が2倍になります)

私はここで値を2倍にしていますが、私はこれに固執しています。どんなhepでも感謝します。 !C、2,0)、VLOOKUP(G5772、genre.csv B:私は

= CONCATENATE(VLOOKUP(F5772、category.csv Bでチェック

Dim lRow, asLastrow, amLastrow, bsRow, bmRow As Integer 

Sheets("Multiple").Activate 
lRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row 

bmRow = lRow + 1 
bsRow = lRow + 1 

Sheets("Multiple").Activate 
amLastrow = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row + 1 
Sheets("Single").Activate 
asLastrow = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row + 1 

If asLastrow > 1 Then 
    Do While bsRow < asLastrow 
     ActiveSheet.Range("A" & CStr(bsRow)).Formula = "=CONCATENATE(VLOOKUP(R[" & CInt(bsRow) & "]C[5],category.csv!C[1]:C[2],2,0),VLOOKUP(R[" & CInt(bsRow) & "]C[6],genre.csv!C[1]:C[2],2,0),INDEX(source.csv!C,MATCH(R[" & CInt(bsRow) & "]C[4],source.csv!C[1],0)))" 
     bsRow = bsRow + 1 
    Loop 
End If 

実際のセルの内容物C、

+0

3つの連結要素のそれぞれについて、デバッガーとワークシートの値を指定した場合に役立ちます。言い換えれば、 'VLOOKUP(F5772、category.csv!B:C、2,0)'と他の2つの部分だけの値は何ですか?私の推測では、これを行うだけで問題が分離されるため、これ以上の助けは必要ありません。 – ExactaBox

+0

こんにちはExactabox、私はこのエラーは、セルの値に依存するとは思わない。実際のセルでは、通常のexcel vbaデバッガの変数値(関数にステップインしてF8キーを押す)が異なる値を持ち、実際のセルで取得される値が異なります。 ループのセルでも変数の値が倍増していることを示唆する2つの異なる数字が与えられているので、問題の原因とは思わないExcelの上部に隠れた行があります – Sanjit

+0

いくつかの例をロードしますか関係するワークブックの? (Sheet Multiple、Single、genre.csv、source.csv、およびcategory.csvを持つもの) – user3598756

答えて

1

R[2886]C[5]は、相対座標です - 右下の2886の行と5番目の列の相対座標です(例:2,086)細胞は式を含有する。

R[0]C[5]または単にRC[5]は、同じ行を参照する2つの正しい方法です。

もう一つの選択肢は絶対座標:R2886C6を使用することです。

+0

パーフェクト..それは私が欠けていたものです。ありがとう – Sanjit

関連する問題