2013-07-04 2 views
1

나는 True 또는 False 값을 제공하는 수식 =IF(L2=N2, IF(N2>0,TRUE, FALSE), FALSE)이있는 열이있는 Excel 스프레드 시트를 가지고 있습니다. 이 스프레드 시트를 Excel에서 열면 오름차순으로 정렬되므로 올바르게 정렬됩니다. 녹음에서 반환 된 매크로는 다음과 같습니다.액세스에서 수식을 사용하여 Excel 열 정렬 자동화

ActiveWorkbook.Worksheets("Incorrect Items").AutoFilter.Sort.SortFields.Clear 
ActiveWorkbook.Worksheets("Incorrect Items").AutoFilter.Sort.SortFields.Add _ 
    Key:=Range("X1:X2188"), SortOn:=xlSortOnValues, Order:=xlAscending, _ 
    DataOption:=xlSortNormal 
With ActiveWorkbook.Worksheets("Incorrect Items").AutoFilter.Sort 
    .Header = xlYes 
    .MatchCase = False 
    .Orientation = xlTopToBottom 
    .SortMethod = xlPinYin 
    .Apply 
End With 

내가 이것을 액세스 권한으로 이전하면.

With WorkSheet 
    .AutoFilter.Sort.SortFields.Clear 
    .AutoFilter.Sort.SortFields.add _ 
     Key:=.range("X1:X2188"), SortOn:=0, Order:=1, DataOption:=0 
    With .AutoFilter.Sort 
     .Header = 1 
     .MatchCase = False 
     .Orientation = 1 
     .SortMethod = 1 
     .Apply 
    End With 
End With 

코드는 오류가 반환에 잘 실행,하지만 xlSortOnValues 일정을 무시하고있는 것 같다과 열을 정렬하지 않습니다. 정렬 작업을하기 전에 값을 복사하여 붙여 넣을 수는 있지만 액세스가 아닌 Excel에서이 작업이 왜 작동하는지 알고 싶습니다.

+0

내 정렬 후에 통합 문서를 저장하지 않으므로 정렬 후에 'Workbook.Save'를 추가하려고했지만 결과는 없습니다. 귀하의 질문은 나에게 다른 것을 시도하도록 촉구했으나 감사합니다. 이 작은 섹션이 실행되는 것 이상으로 계산을 수동으로 돌리고있었습니다. 정렬 전에 문제를 해결하기 위해 자동으로 되돌려 놓았지만 계산식을 수동으로 설정하고 스프레드 시트를 열어서 직접 수행 할 수 있습니다. – Zaider

+0

게시 한 질문의 해결과 관련이 있습니까? 죄송합니다, 혼란 스럽습니다. – Smandoli

+0

있습니다. 정렬 코드를 실행하기 전에 계산을 자동으로 되돌려 놓으면 스프레드 시트가 올바르게 업데이트됩니다. 흥미롭게도 이것은 수식이 들어있는 열을 정렬하고 값만 포함하는 열을 잘 정렬하는 데 필요합니다. – Zaider

답변

0

MS Access에서 MS Excel을 자동화하고 수식에서 만든 값이있는 열을 정렬하거나 수식의 결과를 복사하는 등의 수식을 처리하는 경우 정확한 결과 appExcel.Application.Calculation = -4105을 확인하려면 계산을 자동으로 설정해야합니다.

1

xlSortOnValues은 모든 Excel 버전에서 동일하게 처리되지 않으므로 올바른 라이브러리가 활성화되어 있는지 확인하십시오 (VBA 편집기의 개체 참조).

관련 문제