gpt4 book ai didi

VBA vlookup 与 excel 事件

转载 作者:行者123 更新时间:2023-12-02 17:56:50 25 4
gpt4 key购买 nike

我在 Sheet1 列 D 中有一个位置列表,在 Sheet1 列 E 中有一个原始值列表。有些地方之间有空行,有些地方重复。

我在 Sheet2 F 列 中有一个精简的位置列表(数据中有 1 个空白行),在 Sheet2 G 列 中,我可以为每个位置添加新的更正值地方。

计划是有一个脚本,每次我在 Sheet2 列 G 中放入新值时都会运行该脚本。我希望这可以通过 excel vba Events 来实现。假设我更新了 G5,脚本会在 Sheet1 D:D 中查找 Sheet2 F5,然后替换 Sheet1 E 中的相应值: E 具有新的 Sheet2 G5 值:

这是我对一些代码的尝试,但我仍然不确定 1) 如何使其工作以及 2) 每次更新 Sheet2 G:G 中的值时如何使其工作?任何帮助将不胜感激。

Sub CorrectingValues()

Dim i As Long
Dim lstrw As Long
Dim newval As Range

Sheets("Sheet1").activate
lstrw = Cells(Rows.Count, "D").End(xlUp).Row
For i = lstrw to 1 Step -1
If Sheet("2").Cells(i, "G").value <>"" Then
newval = .Find(Sheets("Sheet2").cells(i, "F") _
After:=Sheets("Sheet1").Range("D1") , LookIn:=xlValues)
Cells(newval, "E").Value = Sheets("2").cells(i,"G")
End If
Next i

End Sub

最佳答案

将以下代码放入Sheet2

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("G:G")
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
enteredvalue = Target.Value
enteredvaluefind = Cells(Target.Row, Target.Column - 1)
targetfindrow = Worksheets("Sheet1").Range("D:D").Find(enteredvaluefind).Row
targetfindcolumn = Worksheets("Sheet1").Range("D:D").Find(enteredvaluefind).Column
Worksheets("Sheet1").Cells(targetfindrow, targetfindcolumn + 1) = enteredvalue
End If
End Sub

关于VBA vlookup 与 excel 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36332318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com