2016-07-26 7 views
1

現在、xlwingsを使用して、グラフとそれに対応する値をMicrosoft Excelで表示しています。私は5つのグラフとその座標(配列内)を持っているので、ループを使って印刷することができました。残念ながら、彼らが現れた列は、ハードコーディングされなければならなかったと私はより多くのプロットを追加した場合に影響を受けることになるので、私はに私のコードを変更:現在、それは最初のプロットを取り、Xが印刷されますループを介して配列インデックスをインクリメントする

for i in range(1, 6): 
    Columns = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S"] 

    Range(Columns[0] + str(1)).value = list(zip(Xvalues)) 
    Range(Columns[1] + str(1)).value = list(zip(Yvalues)) 

列A( "A1")で垂直方向に、次に列B( "B1")で垂直方向にY座標に移動し、次に続行します。

私の質問は、次の値が列[3]と列[4]になるように、ループ内の列[]のインデックスを増やす方法です。

+0

私はあなたが何を求めているのか分かりません。例が役に立ちます。 –

+1

ループの中でColumns変数を再定義する必要はありません –

+0

@DanielCentore申し訳ありませんが、わかりやすくするためにたくさんのコードを省略しましたが、問題は修正されました。ありがとうございます。 – RayBae

答えて

0

別の変数を使用して列インデックスを追跡することができます。この場合jで:

Columns = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S"] 
j = 1 
for j,i in enumerate(range(1, 5)):  
    Range(Columns[j] + str(1)).value = list(zip(Xvalues)) 
    Range(Columns[j+1] + str(1)).value = list(zip(Yvalues)) 
    j += 1 

また、あなたは、ループ内の列のリストを宣言するべきではありません。

+0

ありがとう!それは完璧に働いた、私はちょうどj = 3 *私は必要な間隔のために変更する必要がありました。 – RayBae

+0

乾杯、仲間。あなたにハッピーコーディング。 – bernie

関連する問題