Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Excel互操作合并不工作_C#_Excel_Merge_Excel Interop - Fatal编程技术网

C#Excel互操作合并不工作

C#Excel互操作合并不工作,c#,excel,merge,excel-interop,C#,Excel,Merge,Excel Interop,我定义了一个范围,包括: Range range = ws.Range[ws.Cells[7, 1], ws.Cells[7, 4]]; 并与 range.Interior.Color = rgbBlueViolet; 所以范围是正确的,因为我看到它是彩色的 但当我这么做的时候 range.Merge(true); 我得到以下例外情况: {System.Runtime.InteropServices.COMException(0x800A03EC):来自HRESULT的异常:0x800A

我定义了一个范围,包括:

Range range =  ws.Range[ws.Cells[7, 1], ws.Cells[7, 4]];
并与

range.Interior.Color = rgbBlueViolet;
所以范围是正确的,因为我看到它是彩色的

但当我这么做的时候

range.Merge(true);
我得到以下例外情况:

{System.Runtime.InteropServices.COMException(0x800A03EC):来自HRESULT的异常:0x800A03EC 位于System.RuntimeType.ForwardCallToInvokeMember(字符串memberName、BindingFlags标志、对象目标、Int32[]aWrapperTypes、MessageData和msgData) 在Microsoft.Office.Interop.Excel.Range.Merge中(对象交叉)

我不明白

我的目标是将前4列合并在一起,这在我看来是合法的

谢谢你的帮助
Patrick

好的,问题是必须首先选择要合并的范围。要做到这一点,工作表不能最小化。因此代码是:

Application app = new Application();
app.Visible = false;
app.WindowState = XlWindowState.xlNormal; <---not minimized   
...
Range r = ws.Range[ws.Cells[row + 7, 1], ws.Cells[row + 7, 5]];
r.Select(); <-----necessary
r.Merge(false);
Application-app=新应用程序();
app.Visible=false;

app.WindowState=XlWindowState.xlNormal;您可以尝试从Excel手动合并范围,以查看错误是什么,或者可能是
range.Merge(false)
。很少有不允许合并的情况。唉,不。手动操作效果很好。非常感谢!!!这在Windows 10、Excel 2016上发生在我身上,并得到了修复。奇怪的是,在某些计算机上最小化窗口效果很好,但在其他计算机上却没有。Windows变得太快/太聪明了。更多关于HRESULT:0x800A03EC中的“糟糕异常”我也不需要选择;只需设置app.WindowState=XlWindowState.xlNormal