2014-03-19 29 views
0

我正在开发一个应用程序,从DB加载数据到Excel表。 而在其中一列中,我需要用DESCENDING形式进行排序。 但我只是无法做到这一点,因为所有这一切都给我错误... 在升序的形式(默认)我可以做到这一点,它没有任何麻烦,但当我尝试把降序的参数,这不通过它。我怎么排序列在Excel中降序使用vb6

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

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") 

当然还有很多更多的代码...但我只是把这里的代码片段和图表建立像例子你看我怎么样代码组织申报..

* FINISH编辑

升形式,我的代码工作:

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

我tryng添加降参数的形式:

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 

方法排序的参数,不是它的所有可选?

+0

'OrderCustom:= 1'是什么原因造成的问题。摆脱它,它应该运行良好 –

+0

Cor_Blimey我推迟了,但问题仍然是相同的 – Ghilherme

+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 
+0

哦!非常感谢你,它终于为我工作了! thanksss – Ghilherme