Excel.Interop
을 사용하여 RemoveDuplicates
함수를 사용하려하지만 열 배열을 전달하는 방법에 대해 고민하고 있습니다. 나는 이미 런타임에서 예외를 제공하고, 하나의 정수를 전달할 수 있고 작동하지만, 런타임에 사용할 열을 선택할 수 있기를 원한다면 단순한 int[]
배열로 전달할 수 없다는 것을 이미 알고있다.중복 제거 기능 - 여러 열을 어떻게 설정합니까?
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
배열 값을 두 개 이상있는 경우 첫 번째 명령 만이 사용됩니다
C#에서 나의 현재 코드는 다음과 같습니다.
은 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#에서 상응하는 무엇입니까?
평가판 사용을 제거하면 어떻게됩니까? 단지 첫 번째 인수로만 열을 사용합니까? –
'int' 배열을 사용하고 그대로 전달하면 다음 예외가 발생합니다 :'System.Runtime.InteropServices.COMException : 원격 프로 시저 호출이 실패했습니다. (예외 HRESULT에서 : 0x800706BE)' – Mario