excel - 根据标题值复制/粘贴单元格
问题描述
我想创建一个宏,它允许我用另一个表中的数据更新一个表。唯一的问题是这两个表没有相同的标题,我想仅根据“标题值”复制和粘贴单元格。
两个不同的表不在同一个工作表中。
如果这可以帮助:
输入
输出
解决方案
下面介绍如何使用 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
推荐阅读
- neo4j - neo4j cypher如何在单词节点链中找到最频繁的节点模式
- c++ - C++中的自定义排序字符串
- typescript - 为什么 Typescript 元组类型推断会这样工作?
- asp.net - site.master 中的用户代码未处理空引用异常
- sql - SQL 请求中缺少按值范围分组的计数为 0 的行
- docker - 在没有互联网连接的情况下运行 docker compose 文件
- unity3d - unity SpriteMask 交集
- python - Python 类型提示,输出类型取决于输入类型
- hive - 如何在 AWS Athena 中按列名而不是按列顺序从多个 CSV 创建表
- javascript - 这个函数声明是什么意思?函数名和参数相同