【问题标题】:Match and replace cell from another sheet匹配和替换另一个工作表中的单元格
【发布时间】:2011-10-28 19:02:46
【问题描述】:

我对这种类型的查询没有经验,我被卡住了。

我找到了一个我使用过的有效查询,这是逻辑:

“如果 Sheet2 A 列中的任何单元格 = Sheet1 B 列中的任何单元格,则将 sheet2 列 A 单元格值更改为 sheet1 列 A 值”

这个公式是:

Sub Test1()
Application.ScreenUpdating = False
Dim cell As Range, varFind As Variant
With Sheets("Sheet1")
For Each cell In Sheets("Sheet2").Columns(1).SpecialCells(2)
Set varFind = .Columns(2).Find(What:=cell.Value, LookIn:=xlFormulas, LookAt:=xlWhole)
If Not varFind Is Nothing Then cell.Value = .Cells(varFind.Row, 1).Value
Set varFind = Nothing
Next cell
End With
Application.ScreenUpdating = True
End Sub

这对我来说很好,但我需要它略有不同。它需要遵循这个逻辑:

"如果 Sheet2 A 列中的任何单元格 = Sheet1 B 列中的任何单元格,则将 sheet1 列 A 单元格值更改为 sheet2 列 B 值"

有人可以帮忙吗?

【问题讨论】:

    标签: excel match


    【解决方案1】:

    [已更新,因为我需要将工作表 2 上的列从 A 更改为 B]

    正如你写的那样,你只需改变这一行

    If Not varFind Is Nothing Then cell.Value = .Cells(varFind.Row, 1).Value

    If Not varFind Is Nothing Then .Cells(varFind.Row, 1).Value = cell.Offset(0,1).Value

    如果存在性能问题,则可以提高此代码速度。另外,如果表 2 B 列中没有常量单元格供 SpecialCells 查看,您将有潜在的代码崩溃......请告知您是否希望进一步调整代码

    【讨论】:

    • 经过进一步测试,它似乎只更改了匹配单元格值的一个实例。在我的工作表中,有多个需要更改的相同值的实例。是否可以修改以更改所有匹配项?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    相关资源
    最近更新 更多