我正在尝试使用该RemoveDuplicates
函数 using Excel.Interop
,但我不知道如何将它传递给列数组。我已经知道我不能将它作为一个简单的int[]
数组传递,因为它在运行时会给出一个异常,并且我可以传递一个整数并且它可以工作,但我希望能够选择在运行时使用哪些列。
我当前的 C# 代码如下所示:
using Excel = Microsoft.Office.Interop.Excel;
private void removeDuplicates(Excel.Application excelApp, Excel.Range range, int[] columns)
{
range.RemoveDuplicates(excelApp.Evaluate(columns),
Excel.XlYesNoGuess.xlNo);
}
如果只使用一列,它工作正常,但如果columns
数组有多个值,则只使用第一个。
在 VBA 中,等效函数为:
Sub RemoveBadExample()
Dim colsToUse
colsToUse = Array(1, 2)
Selection.RemoveDuplicates Columns:=Evaluate(colsToUse), Header:=xlYes
End Sub
这也无法使用两列。但是,如果我将其更改为:
Selection.RemoveDuplicates Columns:=(colsToUse), Header:=xlYes
它工作得很好。我想我的问题是 C# 中的等价物是什么?