excel - 将选定的动态数据列从一个工作表复制并粘贴到另一个工作表
问题描述
我想将数据从表 1 中的特定列复制到表 2 中的特定列。有 20 个这样的列,并且该映射维护在一个表中,例如
我已经编写了代码来搜索列名(源和目标表),但无法将数据从源列(动态范围)复制到目标列。
Sub search_validate()
Dim j As Integer
Dim sourcSearch, destSearch As String
Dim sCell, dCell As Range
For j = 3 To 20
sourcSearch = Sheet6.Range("Z" & j).Value ' pickup selected source column name
destSearch = Sheet6.Range("AA" & j).Value ' pickup selected destination column name
Set sCell = Sheet1.Rows(2).Find(What:=sourcSearch, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Set dCell = Sheet2.Rows(2).Find(What:=destSearch, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
' sCell.Address or sCell.Column to get source column header address but data starts after this column. dynamic range
' dCell.Address or dCell.Column to get destination column header address. no data in destination column except header.
Next j
End Sub
解决方案
这应该将数据附加到目标列的末尾
If Not sCell Is Nothing And Not dCell Is Nothing Then
Dim Source As Range, Target As Range
Set Source = Intersect(Sheet1.UsedRange, sCell.EntireColumn).Offset(1)
Set Target = Sheet2.Cells(Sheet2.Rows.Count, dCell.Column).End(xlUp).Offset(1)
Source.Copy Destination:=Target
End If
推荐阅读
- karate - 如何处理空手道登录页面加载后的不确定性
- html - 我怎样才能让打开我网站的人立即被重定向到主页?
- qt - QML:来自 ListModel 的多级菜单
- ionic-framework - 异步和等待的目的?
- c# - 使用 MS Fakes C# 的类中的单元测试静态方法
- javascript - Bing API 在欧洲并不总是返回相同的信息(邮政编码等)
- vb.net - 如何使用 vb.net 从 Docusign api 下载文件
- git - 允许用户仅合并特定分支的最佳方法是什么?
- reactjs - 在 React 中传递一个道具与多个道具与嵌套组件?
- html - 无法展开二级菜单