作为我正在处理的报告的一部分,我正在尝试将 Excel 工作表中的 B 列移动到 Q 列的前面。我有 VBA 方面的经验,但在 c# 方面的经验相对较少,所以我在谷歌上花了最后一个小时,找不到解决方案,我觉得这应该很简单,但我不太明白。
方法一,导致“Range 类的插入方法失败”消息。
Excel.Range rngCut1 = JobLabourSheet.get_Range("B:B", Type.Missing);
Excel.Range rngPaste1 = JobLabourSheet.get_Range("Q:Q", Type.Missing);
rngCut1.Columns.Cut(rngPaste1.EntireColumn.Insert(Excel.XlInsertShiftDirection.xlShiftToRight, rngCut1));
方法二导致“无法获取 Range 类的 Cut 属性”消息。
Excel.Range rngCut1 = JobLabourSheet.get_Range("B:B", Type.Missing);
Excel.Range rngPaste1 = JobLabourSheet.get_Range("Q:Q", Type.Missing);
rngCut1.Columns.Cut(rngPaste1.EntireColumn.Insert(Excel.XlInsertShiftDirection.xlShiftToRight, Missing.Value));
在第二种方法中,当我省略 CopyOrigin 时,我得到了 msg,但它确实在 Q 列前面插入了一个空白列。
在 VBA 中,我将使用以下内容:
Columns("B:B").Cut
Columns("Q:Q").Insert Shift:=xlToRight
但就像我说的,我目前的 c# 经验有限,所以我不知道如何将它翻译成 c#