我試圖使用使用RemoveDuplicates
函數,但我堅持如何將它傳遞給列數組。我已經知道我不能將它作爲一個簡單的int[]
數組傳遞,因爲它在運行時會發出異常,並且我可以傳遞一個整數並且它可以工作,但我希望能夠選擇在運行時使用哪些列。RemoveDuplicates函數 - 如何設置多列?
我目前在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#中的等價物?
如果刪除使用Evaluate,只是將列作爲第一個參數會發生什麼? –
如果我使用int數組並傳遞它,我得到以下異常:'System.Runtime.InteropServices.COMException:遠程過程調用失敗。 (從HRESULT異常:0x800706BE)' – Mario