F#Excel UsedRange未定义

错误:“字段,构造函数或成员UsedRange未定义”。

代码摘录:

open Microsoft.Office.Interop.Excel open Microsoft.Office.Tools.Excel // Onorio's excellent suggestion didn't fix code until this line was added. // Once the above line was added, Onorio's suggestion worked, // but now F# says "The field, constructor or member 'EntireColumn' is not defined". let xl = ApplicationClass() xl.Workbooks.OpenText(... let wb = xl.Workbooks.Item(1) let ws = wb.ActiveSheet :?> Worksheet // Per Onorio's suggestion. ws.UsedRange.EntireColumn.AutoFit() // "The field, constructor or member 'EntireColumn' is not defined". // Here's another example of UsedRange now working, // but Properties and Methods of UsedRange not working: // (uniqueID is simply a Boolean set earlier based on ini file values) if uniqueID then xl.Range("A1").EntireColumn.Insert() |> ignore xl.Range("A1").Value <- "UniqueID" xl.Range("A2").Value <- 1 xl.Range("A2").AutoFill(xl.Range("A2:A" + ws.UsedRange.Rows.Count), XlAutoFillType.xlFillSeries) |> ignore // Here it's "The field, constructor or member 'Rows' is not defined". 

谢谢你的帮助!

尝试添加这个:

 let wb = xl.Workbooks.Item(1) let actSheet = wb.ActiveSheet :?> Worksheet //downcast obj to Worksheet actSheet.UsedRange.EntireColumn.AutoFit() 

wb.ActiveSheet返回一个“obj”,你需要将其下传到一个Worksheet中,以便UsedRange方法正确parsing。