2017-05-09 9 views
-1

私はテーブルとメインシートを備えたワークブックを持っています。私はそのテーブルのいくつかの値を変更し、メインシートの値を更新したいと思います。 私が試してみましたコードは次のとおりです。シート間のOpenpyxl更新値

for row in ws1.iter_rows(row_offset=1,min_col=1,max_col=1): 
    for cell in row: 
     ws1.cell(row=cell.row, column=23).value = '=MyTable[@Price]' 

コードが細かい実行されますが、私のメインシートでその列のすべてのセルの#REFエラーを作成します。

テーブルの値を変更して別のシートの値を更新する方法が不明です。

+0

あなたは 'ws1.cell'に' formula'を割り当てます、これはあなたが望むものですか?どのワークシートに「MyTable」という名前がありますか? '@価格'とは何ですか?説明する質問を編集しますか? – stovfl

答えて

0

スクリプトを一時停止し、変更を加え、ファイルを保存して閉じ、スクリプトを再開することで、これを解決できました。

nwb.save("C:/mytable.xlsx")    
os.startfile("C:/mytable.xlsx") 
print("After making changes and saving file, press enter to continue.") 
input() 

nwb = openpyxl.load_workbook("mytable.xlsx") 
ws4 = nwb.get_sheet_by_name("mysheet") 

for row in ws1.iter_rows(row_offset=1,min_col=1,max_col=1): 
    for cell in row:   
     a = ws4.cell(row=cell.row, column=9).value 
     ws1.cell(row=cell.row, column=23).value = a 

これは問題を解決するためのnoobのように思えるかもしれませんが、私はPythonとプログラミング全般にとって非常に新しいです。

関連する問題