0 excel vba excel-2007 excel-vba
我有一个包含A到J列的Excel文档.我有列K到N的相关数据,但没有对齐.
我需要将列F中的值与列K中的值进行匹配,以便它们排成一行.当我换K时,我必须将L,M,N一起移动.
我无法对A列到J列进行排序 - 它们必须保留在原位.
以前的例子:
A B C D E F G H I J K L M N
data data data data data record1 data data data data record3 data data data
data data data data data record2 data data data data record1 data data data
data data data data data record3 data data data data
data data data data data record4 data data data data
Run Code Online (Sandbox Code Playgroud)
示例之后:
A B C D E F G H I J K L M N
data data data data data record1 data data data data record1 data data data
data data data data data record2 data data data data
data data data data data record3 data data data data record3 data data data
data data data data data record4 data data data data
Run Code Online (Sandbox Code Playgroud)
最简单的方法可能是ADO.
Dim cn As Object
Dim rs As Object
Dim strFile As String
Dim strCon As String
Dim strSQL As String
Dim s As String
Dim i As Integer, j As Integer
''This is not the best way to refer to the workbook
''you want, but it is very convenient for notes
''It is probably best to use the name of the workbook.
strFile = ActiveWorkbook.FullName
''Note that if HDR=No, F1,F2 etc are used for column names,
''if HDR=Yes, the names in the first row of the range
''can be used.
''This is the Jet 4 connection string, you can get more
''here : http://www.connectionstrings.com/excel
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
& ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
''Late binding, so no reference is needed
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open strCon
strSQL = "SELECT * " _
& "FROM [Sheet2$A1:J5] a " _
& "LEFT JOIN [Sheet2$K1:N5] b " _
& "ON a.F=b.k "
rs.Open strSQL, cn, 3, 3
''Pick a suitable empty worksheet for the results
Worksheets("Sheet3").Cells(2, 1).CopyFromRecordset rs
''Tidy up
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5352 次 |
| 最近记录: |