如何使用Excel Interop来裁剪一系列单元格
我有一个专栏,我正在削减行3-37行,并将其移动到它的右侧直接列。
我尝试了以下,它正确地将值移到右侧,但单元格样式不会复制。
Range copyRange = ws1.Range["L5:L37"]; Range insertRange = ws1.Range["M5:M37"]; insertRange = copyRange;
我也尝试过从这里解决scheme在Excel中剪切和粘贴列使用C#,但似乎没有任何复制
Range copyRange = ws1.Range["L5:L37"]; Range insertRange = ws1.Range["M5:M37"]; //insertRange.Insert(copyRange.Cut()); insertRange.Insert(XlInsertShiftDirection.xlShiftToRight, copyRange.Cut());
如果只想用目标单元格的内容replace目标单元格的内容,并删除源单元格的内容,那么Range.Cut
方法应该做到这一点,如果你把目标单元格作为论据:
Range sourceRange = ws1.Range["L5:L37"]; Range destinationRange = ws1.Range["M5:M37"]; sourceRange.Cut(destinationRange);
这不会将sourceRange
复制到剪贴板,但是如果剪贴板上已经有一个范围, 它将清除剪贴板。
您也可以只指定目标范围的左上angular的单元格,它将执行相同的操作:
Range sourceRange = ws1.Range["L5:L37"]; Range destinationRange = ws1.Range["M5"]; sourceRange.Cut(destinationRange);
如果要保留源单元格的内容,请使用“ Copy
而不是“ Cut
。
(请注意, insertRange = copyRange;
绝对不应该在任何地方复制任何单元格,如果insertRange
是一个局部variables,那么只有当C#支持重载赋值(据我所知,它不会)或者某种其他代码以某种方式“感觉到“这个任务。)