如何使用vb6对excel中的列进行排序

时间:2014-03-19 18:09:09

标签: vba excel-vba vb6 excel

我正在开发一个将数据从DB加载到Excel工作表的应用程序。 在其中一列中,我需要以DESCENDING形式排序。 但我不能这样做,因为这一直给我带来错误...... 以升序形式(默认)我可以做到并且它没有任何麻烦地通过,但是当我尝试放下降的参数时,这不会通过它。

编辑* 首先,声明和常量:

Dim obj_excel As Object
Set obj_excel = CreateObject("Excel.Application")
Dim oSheet As Object ' Worksheet
Dim oChart As Object ' To declare chart Excel

obj_excel.Workbooks.Add 'add a workbook to the app
obj_excel.Sheets(w_Plan1).Select
obj_excel.Sheets("Folha2").Name = "Provider"

obj_excel.cells(1, w_coluna).Font.Bold = True

'header
obj_excel.cells(1, w_coluna).Font.Size = 10
obj_excel.cells(1, w_coluna).Value = "OF"
obj_excel.cells(1, w_coluna).HorizontalAlignment = -4108

'Assigning values to one cell
obj_excel.cells(w_linha, 2).Font.Bold = False
obj_excel.cells(w_linha, 2).Font.Size = 10
obj_excel.cells(w_linha, 2).Value = obj_cmpcil0.H_cdforneced1
obj_excel.cells(w_linha, 2).HorizontalAlignment = -4108
...
.....
......
'Creating a chart
Set oSheet = obj_excel.worksheets.Item(2)
Set oChart = oSheet.ChartObjects.Add(250, 10, 660, 450).Chart
oChart.SetSourceData Source:=oSheet.Range(w_Plan2 & "!$A$1:$C$11")

当然还有更多的代码......但我只是把这些代码片段和图表构建成一个例子给你看看我的代码是如何组织和声明的。

*完成编辑

我的代码工作的升序形式:

    obj_excel.Sheets(2).Range("A2:C25").Sort _
        key1:=obj_excel.Sheets(2).Columns("C")

我尝试添加降序参数的表单:

obj_excel.Sheets(2).Range("A2:C25").Sort _
        key1:=obj_excel.Sheets(2).Columns("C") _
        Order1:=xlDescending, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal

方法排序的参数,不是全部可选吗?

1 个答案:

答案 0 :(得分:1)

使用实际值而不是Excel定义的xlXXXX常量:

With obj_excel.Sheets(2)
    .Range("A2:C25").Sort key1:=.Columns("C"), _
                    Order1:=2, _
                    OrderCustom:=1, _
                    MatchCase:=False, _
                    Orientation:=1, _
                    DataOption1:=0

End With