获取 Excel 异常"Unable to set the NumberFormat property of the Range Class"



当我通过 VSTO 双击 excel 中的一个单元格时,我收到此异常

我的代码如下:

Worksheet worksheet = (Worksheet)Globals.ThisAddIn.Application.ActiveSheet;
Range range = worksheet.Range[entry.Key, System.Type.Missing];
range.NumberFormat = "DD-MMM-YYYY";

当我使用 Tab 键或任何箭头键时,它完美运行

任何意见将不胜感激。

这可能是因为当您双击单元格时,该单元格处于编辑状态,您无法在处于编辑状态时对单元格/区域进行更改。

使用图纸选择

事件(每当图纸上的选择发生更改时都会触发)是否无法实现所需的目标?

请注意,已单击具有焦点的单元格不会触发此事件。

https://msdn.microsoft.com/en-us/library/office/ff194470.aspx

当我通过VSTO双击excel中的一个单元格时,我收到此异常

代码中出现异常,因为 Excel 处于编辑模式。使用以下代码以编程方式确定状态:

Private Function IsEditing () As Boolean
    Dim cBars As Office.CommandBars = ExcelApp.CommandBars
    Dim result As Boolean = Not cBars.GetEnabledMso("FileNewDefault")
    Marshal.ReleaseComObject(cBars)
    Return result
End Function

有关详细信息,请参阅如何以编程方式检查用户是否正在编辑 Excel 单元格。

相关内容

最新更新