【问题标题】:vba to copy specific cells when values from two columns match当两列中的值匹配时,vba 复制特定单元格
【发布时间】:2015-01-12 01:22:22
【问题描述】:

我是 vba 新手,需要找到一种方法来根据匹配值在工作表之间复制某些单元格。在 sheet1 中,A 列是缩写名称列表。我需要在表 2 的 D 列中搜索任何匹配项。如果找到匹配项,则复制工作表 2 的 A、B 和 C 中的单元格并将它们粘贴到工作表 1 的相应位置。

【问题讨论】:

  • 1) 录制宏,2) vlookup 功能。谷歌这两个,你可能很快就完成了
  • 我不认为我可以只记录一个宏,因为有数百个单独的匹配值,而不仅仅是我正在寻找的单个值。我对 vlookup 功能不太熟悉。我一直在努力学习 vba,并且经常找到可以修改的代码来完成我所需要的,但这仍然是我的目标。

标签: vba excel


【解决方案1】:

我也相信最简单的方法是使用 vlookup。 也可以更快... 如果你愿意,你可以使用这样的东西。 不过没查过。

Sub CopyBasedonSheet1()

Dim i As Long
Dim j As Long
Sheet1LastRow = Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
Sheet2LastRow = Worksheets("Sheet2").Range("D" & Rows.Count).End(xlUp).Row

    For j = 1 To Sheet1LastRow
        For i = 1 To Sheet2LastRow
            If  Worksheets("Sheet1").Cells(j, 1).Value  = Worksheets("Sheet2").Cells(i, 4).Value Then
                Worksheets("Sheet1").Cells(j, 2).Value  = Worksheets("Sheet2").Cells(i, 1).Value
                Worksheets("Sheet1").Cells(j, 3).Value  = Worksheets("Sheet2").Cells(i, 2).Value
                Worksheets("Sheet1").Cells(j, 4).Value  = Worksheets("Sheet2").Cells(i, 3).Value
            Else
            End If
    Next i
Next j
End Sub

【讨论】:

  • 谢谢!这非常有效,比我尝试的要简单得多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-20
  • 2022-12-07
  • 2019-03-25
  • 2018-09-11
  • 1970-01-01
  • 2016-04-20
  • 1970-01-01
相关资源
最近更新 更多