VBA,使用标题名称将值从一张纸复制到另一张纸

优秀的人

我想将值从工作表 A 复制到工作表 B 但让它循环遍历两个工作表中的标题,在工作表 B 中找到标题并根据标题将值从工作表 A 粘贴到 B 中。这背后的原因是标题不在同一个列名中,因此直接复制和粘贴将不起作用。

我有一块可以正常复制和粘贴它。但是如何让它循环遍历 Sheet B 中的现有标题,标题将在第 1 行中预定义。卡在复制和粘贴部分。

    Sub stack()

Dim i As Integer
Dim y As Integer
Dim src As Range
Dim tgt As Range
Dim Headloop As String
Dim Headloop2 As String

Set src = Sheets("sheet1")  'source sheet
Set tgt = Sheets("sheet2")   'destination sheet

With tgt
For i = 1 To max_col
    Headloop = Range(i & "1").value 'i is column Number, "1" is row 1
Next i
End With

With src
For y = 1 To max_col
    Headloop2 = Range(y & "1").value 'y is column Number, "1" is row 1
Next y
End With

 For Each i In tgt
    If Headloop > 0 Then
    Range(y&"2"),src.Copy Destination: = tgt.range(i&"2").value
    End If
Next i


End Sub

谢谢。

哈尔

这是一个基本原理示例。

我假设源标题位于第 1 页的第 1 行,因此请使用:

Intersect(.Rows(1), .UsedRange).SpecialCells(xlCellTypeConstants)

找到该行中的所有标题并循环遍历它们。

每个源头都是当前的rng.Value.

我用来Find将它与 sheet2 的第 1 行相匹配。

trgt.Rows(1).Find(rng.Value, LookIn:=xlValues, lookat:=xlWhole)

如果找到,则复制标题下的数据:

If Not trgtCell Is Nothing Then
                .Range(rng.Offset(1), .Cells(.Rows.Count, rng.Column).End(xlUp)).Copy

我使用匹配的单元格 ,trgtCell来确定要粘贴到的列。

我粘贴到该列中的下一个可用行使用

 .Cells(.Rows.Count, trgtCell.Column).End(xlUp).Row + 1

代码:

Option Explicit
Sub CopyByHeaders()
    Dim rng As Range, trgtCell As Range, src As Worksheet, trgt As Worksheet
    Set src = Worksheets("Sheet1")
    Set trgt = Worksheets("Sheet2")
    Application.ScreenUpdating = False
    With src
        For Each rng In Intersect(.Rows(1), .UsedRange).SpecialCells(xlCellTypeConstants)       
            Set trgtCell = trgt.Rows(1).Find(rng.Value, LookIn:=xlValues, lookat:=xlWhole)
            If Not trgtCell Is Nothing Then
                .Range(rng.Offset(1), .Cells(.Rows.Count, rng.Column).End(xlUp)).Copy
                With trgt
                    .Range(Split(trgtCell.Address, "$")(1) & .Cells(.Rows.Count, trgtCell.Column).End(xlUp).Row + 1).PasteSpecial
                End With
            End If
        Next rng
    End With
    Application.ScreenUpdating = True
End Sub

要粘贴到目标的第 2 行,请使用:

 .Range(Split(trgtCell.Address, "$")(1) & 2).PasteSpecial

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用VBA将值从一张纸复制到另一张纸

来自分类Dev

使用VBA将值从一张纸复制到另一张纸

来自分类Dev

VBA将数据从一张纸复制到另一张纸

来自分类Dev

VBA - 将数据从一张纸复制到另一张纸

来自分类Dev

使用VBA将一行从一张纸复制到另一张纸

来自分类Dev

使用VBA将数据从一张纸复制到另一张纸时出错

来自分类Dev

无法使用VBA将整行从一张纸复制到另一张纸

来自分类Dev

使用 vba 宏代码将特定列从一张纸复制到另一张纸

来自分类Dev

使用 vba 以相反的顺序将数据从一张纸复制到另一张纸

来自分类Dev

使用UserForm中的数据将值从一张纸复制到另一张纸

来自分类Dev

将数据从一张纸复制到另一张纸的问题

来自分类Dev

将行从一张纸复制到另一张纸

来自分类Dev

将Excel行从一张纸复制到另一张纸

来自分类Dev

根据名称和日期将数据从一张纸复制到另一张纸

来自分类Dev

VBA将已过滤的字段从一张纸复制到另一张纸而不激活

来自分类Dev

VBA将已过滤的字段从一张纸复制到另一张纸而不激活

来自分类Dev

将列从一张纸复制到另一张工作簿

来自分类Dev

将文本从一张纸复制到另一张纸,具体取决于复制的来源

来自分类Dev

VBA:从一张纸到另一张纸的多次复制和粘贴

来自分类Dev

Excel根据条件将数据从一张纸复制到另一张纸

来自分类Dev

将行(不是整行)从一张纸复制到另一张纸

来自分类Dev

Excel宏将范围从一张纸复制到另一张纸

来自分类Dev

如何根据Excel中的标题将一列从一张纸复制到另一张纸?

来自分类Dev

将值从一张纸复制到另一张纸,然后将结果复制回另一列的同一张纸

来自分类Dev

代码没有按预期工作。如果条件满足,则将值从一张纸复制到另一张纸的 VBA 代码

来自分类Dev

将列从一张纸复制到另一张纸的 VBA 代码出现间歇性“内存不足”错误

来自分类Dev

使用VBA,将所有公式从一张纸复制到另一张纸上,而没有其他内容?

来自分类Dev

在不包含图片的情况下将值从一张纸复制到另一张纸

来自分类Dev

如果符合条件(相对行),则将数据从一张纸复制到另一张纸

Related 相关文章

  1. 1

    使用VBA将值从一张纸复制到另一张纸

  2. 2

    使用VBA将值从一张纸复制到另一张纸

  3. 3

    VBA将数据从一张纸复制到另一张纸

  4. 4

    VBA - 将数据从一张纸复制到另一张纸

  5. 5

    使用VBA将一行从一张纸复制到另一张纸

  6. 6

    使用VBA将数据从一张纸复制到另一张纸时出错

  7. 7

    无法使用VBA将整行从一张纸复制到另一张纸

  8. 8

    使用 vba 宏代码将特定列从一张纸复制到另一张纸

  9. 9

    使用 vba 以相反的顺序将数据从一张纸复制到另一张纸

  10. 10

    使用UserForm中的数据将值从一张纸复制到另一张纸

  11. 11

    将数据从一张纸复制到另一张纸的问题

  12. 12

    将行从一张纸复制到另一张纸

  13. 13

    将Excel行从一张纸复制到另一张纸

  14. 14

    根据名称和日期将数据从一张纸复制到另一张纸

  15. 15

    VBA将已过滤的字段从一张纸复制到另一张纸而不激活

  16. 16

    VBA将已过滤的字段从一张纸复制到另一张纸而不激活

  17. 17

    将列从一张纸复制到另一张工作簿

  18. 18

    将文本从一张纸复制到另一张纸,具体取决于复制的来源

  19. 19

    VBA:从一张纸到另一张纸的多次复制和粘贴

  20. 20

    Excel根据条件将数据从一张纸复制到另一张纸

  21. 21

    将行(不是整行)从一张纸复制到另一张纸

  22. 22

    Excel宏将范围从一张纸复制到另一张纸

  23. 23

    如何根据Excel中的标题将一列从一张纸复制到另一张纸?

  24. 24

    将值从一张纸复制到另一张纸,然后将结果复制回另一列的同一张纸

  25. 25

    代码没有按预期工作。如果条件满足,则将值从一张纸复制到另一张纸的 VBA 代码

  26. 26

    将列从一张纸复制到另一张纸的 VBA 代码出现间歇性“内存不足”错误

  27. 27

    使用VBA,将所有公式从一张纸复制到另一张纸上,而没有其他内容?

  28. 28

    在不包含图片的情况下将值从一张纸复制到另一张纸

  29. 29

    如果符合条件(相对行),则将数据从一张纸复制到另一张纸

热门标签

归档