|
- Sub test1()
- Dim ar, i As Long, Conn As Object, rs As Object, SQL As String, strConn As String, tb As String
- Set Conn = CreateObject("ADODB.Connection")
- strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source="
- Conn.Open strConn & ThisWorkbook.FullName
- With Range("A1").CurrentRegion
- tb = .Parent.Name & "$" & .Address(0, 0)
- ar = .Rows(1).Value
- End With
- For i = 5 To UBound(ar, 2)
- SQL = SQL & " UNION ALL SELECT " & ar(1, 1) & "," & ar(1, i) & " AS 数量 FROM [" & tb & "]"
- Next
- SQL = "SELECT * FROM (" & Mid(SQL, 12) & ") ORDER BY " & ar(1, 1) & " DESC,数量"
- Set rs = Conn.Execute(SQL)
- With Range("P1")
- .CurrentRegion.ClearContents
- For i = 0 To rs.Fields.Count - 1
- .Offset(, i) = rs.Fields(i).Name
- Next
- .Offset(1).CopyFromRecordset rs
- End With
- rs.Close: Set rs = Nothing: Conn.Close: Set Conn = Nothing
- Beep
- End Sub
复制代码 |
评分
-
1
查看全部评分
-
|