小编Mar*_*rio的帖子

RemoveDuplicates函数 - 如何设置多列?

我正在尝试使用该RemoveDuplicates函数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); 
}
Run Code Online (Sandbox Code Playgroud)

如果只使用一列,它可以正常工作,但如果columns数组有多个值,则只使用第一列.

在VBA中,等效函数将是:

Sub RemoveBadExample()
    Dim colsToUse
    colsToUse = Array(1, 2)
    Selection.RemoveDuplicates Columns:=Evaluate(colsToUse), Header:=xlYes
End Sub
Run Code Online (Sandbox Code Playgroud)

这也无法使用两列.但是,如果我将其更改为:

    Selection.RemoveDuplicates Columns:=(colsToUse), Header:=xlYes
Run Code Online (Sandbox Code Playgroud)

它工作得很好.我想我的问题是C#中的等价物是什么?

c# excel interop

3
推荐指数
1
解决办法
4517
查看次数

标签 统计

c# ×1

excel ×1

interop ×1