2017-06-06 16 views
0

xml形式でデータをインポートできるスクリプトを作成する必要があります。変数以外のすべての注文に必要なコードブロックを生成します。私は範囲内のすべての行を調べ、列 "G"から値を取得する必要があります。問題は範囲の最初の行の値だけを取得することです。各行の特定の列の値を取得する

Dim rng As Range, row As Range 
Set rng = Range(Range("G11"), Range("G11").End(xlDown)) 
For Each row In rng.Rows 
Dim partner_id As String 
partner_id = Cells(rng.row, 7).Value 
line9 = "<typ:id>" & partner_id & "</typ:id>" & vbNewLine 

... 

私はプログラマではありませんが、実際にはそのpartner_idを取得する必要があります。私は何か提案を感謝します。

答えて

1

Excelオブジェクトで使用されている一般的なメソッドと同じ変数名を使用しないでください。例えば、rowmyRowに変更してください。それで、あなたの問題を引き起こしていると思われるものが強調表示されます。rng.rowの名前を変更した変数を使用すると、rng.myRowと書かれている可能性があります。

rng.rowは、最初のセルの行番号をrngに戻しているだけで、rowという変数には関係ありません。

Dim rng As Range, myRow As Range 
Set rng = Range(Range("G11"), Range("G11").End(xlDown)) 
'There's no need to use "rng.Rows" when each row is a single cell anyway 
For Each myRow In rng 
    Dim partner_id As String 
    'because myRow is a single cell, we can just use its Value 
    partner_id = myRow.Value 
    line9 = "<typ:id>" & partner_id & "</typ:id>" & vbNewLine 

    ... 

FWIW -

Dim rng As Range, row As Range 
Set rng = Range(Range("G11"), Range("G11").End(xlDown)) 
For Each row In rng.Rows 
Dim partner_id As String 
partner_id = Cells(row.Row, 7).Value 
line9 = "<typ:id>" & partner_id & "</typ:id>" & vbNewLine 

... 
つまり、あなたが代わりに rng.Rowrow.Rowを使用して、コードを固定している可能性があなたの変数名を残すことと変わらないスタイルをコーディング
関連する問題