Excel 基于标题值复制/粘贴单元格

Excel 基于标题值复制/粘贴单元格,excel,vba,Excel,Vba,我想创建一个宏,允许我使用另一个表中的数据更新一个表。 唯一的问题是这两个表没有相同的标题,我只想根据“标题值”复制和粘贴单元格 两个不同的表不在同一工作表中 如果这有帮助: 输入 输出 以下是如何使用ADODB Sub Test() Dim Ws As Worksheet Dim sql As String Dim vFild() Dim rngFild As Range, rng As Range Dim strFild As String

我想创建一个宏,允许我使用另一个表中的数据更新一个表。 唯一的问题是这两个表没有相同的标题,我只想根据“标题值”复制和粘贴单元格

两个不同的表不在同一工作表中

如果这有帮助:

输入

输出


以下是如何使用ADODB

Sub Test()
    Dim Ws As Worksheet
    Dim sql As String
    Dim vFild()
    Dim rngFild As Range, rng As Range
    Dim strFild As String
    Dim n As Integer

    Set Ws = Sheets("Output")
    With Ws
        Set rngFild = .Range("a1", .Range("a1").End(xlToRight))
    End With
    For Each rng In rngFild
        n = n + 1
        ReDim Preserve vFild(1 To n)
        vFild(n) = "[" & rng & "]"
    Next rng

    strFild = Join(vFild, ",")

    sql = "select " & strFild & "from [Input$] "

    exeSQL Ws, sql

End Sub


Sub exeSQL(Ws As Worksheet, strSQL As String)

    Dim Rs As Object
    Dim strConn As String
    Dim i As Integer

    strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
        "Data Source=" & ThisWorkbook.FullName & ";" & _
            "Extended Properties=Excel 12.0;"


    Set Rs = CreateObject("ADODB.Recordset")
    Rs.Open strSQL, strConn

    If Not Rs.EOF Then
         With Ws
            .Range("a1").CurrentRegion.Offset(1).ClearContents
            'For i = 0 To Rs.Fields.Count - 1
            '   .Cells(1, i + 1).Value = Rs.Fields(i).Name
            'Next
            .Range("a" & 2).CopyFromRecordset Rs
        End With
    End If
    Rs.Close
    Set Rs = Nothing
End Sub

欢迎来到SO。请看,别忘了阅读和阅读。另外,在创建一个
嵌套循环
、第一个循环:通过输出表标题循环、第二个循环:通过输入标题循环、第三个:如果loop1值“x”=loop2值“y”,则复制数据时,还可以查看更多信息。。。我通常这样做的方式是,我使用一个函数来查找并返回标题,要么作为范围,要么仅作为列(作为长度),然后使用这个函数来寻址单元格。还有,透视表呢?看起来你只是想从很多事情中看到一些事情。听起来像是数据透视表先生的工作。谢谢你们的建议!我会试试的,会和你保持联系的。谢谢。我会试试看,并与你保持联系