2017-03-31 133 views
0

我在python中使用win32com來修改excel工作簿。我想凍結單元格C6,但是下面的代碼凍結了單元格P22。我給Range的實際價值似乎並不重要。Excel凍結窗格宏問題

import win32com.client 

excel = win32com.client.DispatchEx('Excel.Application') 
excel.Visible = True 
book = excel.Workbooks.Add() 

excel.Range("C6").Select 
excel.ActiveWindow.FreezePanes = True 

任何想法是什麼問題在這裏?

+0

你可以使用'xlsxwriter'嗎?這對我來說沒有問題。如果你喜歡我會在答案中寫一個例子。 – bernie

+0

我非常深入地開發一個使用win32com的應用程序,所以在這一點上它不值得轉換。 – PProteus

+0

也許可以確保您正在引用包含範圍的表單,因爲沒有全局/工作簿級別範圍(「C6」)'。相反:'excel.Sheets(1).Range(「C6」)。選擇'或'excel.Sheets(「Sheet1」)。Range(「C6」)。Select'這只是一個猜測。 – JNevill

回答

0

如果您希望Range(在您的示例中爲C6)的值很重要,則需要在Select之後添加括號()。

你的代碼是那麼:

import win32com.client 

excel = win32com.client.DispatchEx('Excel.Application') 
excel.Visible = True 
book = excel.Workbooks.Add() 

excel.Range("C6").Select() #add the() at the end here 
excel.ActiveWindow.FreezePanes = True 

對於我來說,它凍結在J20的時候我沒有在()後Select補充。

問候。