2012-02-16 13 views
1

だから私は1つのwoorkbookから別のwoorkbookに多くのデータをコピーしようとしています。問題は、ソースブックのデータに奇妙な形式があるため、値を取得するだけです。これまでのコードはこれです。special inをpythonで貼り付けるには

excel=win32com.client.Dispatch("Excel.Application"); 
excel.Visible = 1; 
source = excel.Workbooks.Open(Cali.xlsm'); 
copy = excel.Workbooks.Open(temp.xlsx'); 
sdata = source.ActiveSheet;cdata = copy.ActiveSheet; 
data=sdata.Range("89:89") 
sdata.Range("89:89",data.End(4)).Copy() 

今私は

cdata.Paste() 

が、それは同様に整形を貼り付け

を使用することができます私は

cdata.PasteSpecial() 

を見つけたが、それはまた、整形を貼り付けます。

PasteSpecial()を使用する方法を知っていて誰かが値をコピーするか、誰かが私が非常に感謝するよりよい方法を知っている人。

+2

ちょうどアイデア:.PasteSpecial()に渡すことができるパラメータはありません。これはWHCIHペーストを使用するように指定しますか? VBAでは、xlPasteValuesの値は-4163です。 –

+0

私は何を考えているのですか?私はまだそれを渡す方法がまだ分かりません。私がcdata.PasteSpecial(-4163)をしただけでエラーが出る – paldives

+1

これは役に立ちますか? http://www.mail-archive.com/[email protected]/msg06368.html –

答えて

2

セルA1:A3の値をあるブックから別のブックにコピーする次の方法があります。

from win32com.client import Dispatch 
wkbk1 = "...\workbook1.xlsx" 
wkbk2 = "...\workbook2.xlsx" 
excel = Dispatch("Excel.Application") 
excel.Visible = 1 
source = excel.Workbooks.Open(wkbk1) 
excel.Range("A1:A3").Select() 
excel.Selection.Copy() 
copy = excel.Workbooks.Open(wkbk2) 
excel.Range("A1:A3").Select() 
excel.Selection.PasteSpecial(Paste=-4163) 

wkbk1とwkbk2は、2つのブックへのファイルパスです。

+0

ちょっとした修正を加えて、これがうまくいったと思います。ありがとう – paldives

関連する問題