1

=IF(L2=N2, IF(N2>0,TRUE, FALSE), FALSE)True または False の値を与える数式を含む列を持つ 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 で機能する理由を知りたいです。

4

2 に答える 2

1

MS Access から MS Excel を自動化し、数式から作成された値を持つ列での並べ替えや数式からの合計の結果のコピーなどの数式を処理する場合、正しい結果を観察するには、計算を自動に設定する必要がありますappExcel.Application.Calculation = -4105

于 2013-07-09T15:30:14.717 に答える
1

xlSortOnValuesは、すべての Excel バージョンで同じように処理されるわけではないため、適切なライブラリがアクティブになっていることを確認してください (VBA エディターでのオブジェクト参照)。

于 2013-07-04T20:44:36.920 に答える