gpt4 book ai didi

excel - 单元格中的值以匹配我拥有的列表并对其下的每个单元格进行匹配(标题不好)

转载 作者:行者123 更新时间:2023-12-04 21:56:43 24 4
gpt4 key购买 nike

我希望宏/代码获取在该单元格中输入的产品(我猜是相对引用)并扫描我拥有的产品列表。如果不匹配,我希望消息框告诉我输入的产品与我的产品列表中的产品不匹配,并返回其输入位置的行号。

所以再举一个例子。假设我们将在单元格中输入数字“1”。我需要宏来搜索我的数字列表 1-100,如果 1 不在其中,我希望它告诉我。假设输入的下一个数字(在下面的单元格中)是 101。一个消息框会告诉我 101 不在我的号码列表中,它位于第 2 行。

它可能需要循环。因为我将在该列中有大约 500 个单元格,我希望它用列表搜索该产品。

最佳答案

右键单击工作表选项卡 --> 查看代码 --> 并将下面给出的代码粘贴到打开的代码窗口中 --> 关闭 VB 编辑器 --> 将您的工作簿保存为启用宏的工作簿。
以下代码假定您在 Sheet2 上有一个名为“List”的命名范围(代码名称而不是选项卡名称)。
如果您在 A 列中从 row2 开始输入一个值,代码将自动检查您输入的值是否在命名范围列表中找到,如果没有找到该值,则会弹出一个 msgbox 为您提供一些信息.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.CountLarge > 1 Then Exit Sub
If Target.Column = 1 And Target.Row > 1 Then
If Target <> "" Then
If Application.CountIf(Sheet2.Range("List"), Target.Value) = 0 Then
MsgBox "The value " & Target.Value & " you entered in cell " & Target.Address(0, 0) & " was not found in the List", vbExclamation, "Item Not Found!"
End If
End If
End If
End Sub

编辑:

用以下代码替换上面建议的代码。
如果您一次更改多个单元格,以下代码将很有用,并将为您提供列表命名范围中未找到的所有值的列表。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
Dim str As String
Dim Found As Boolean
str = "The following values were not found in the List." & vbNewLine & vbNewLine
If Target.Column = 1 And Target.Row > 1 Then
For Each cell In Target
If cell <> "" Then
If Application.CountIf(Sheet2.Range("List"), cell.Value) = 0 Then
Found = True
str = str & cell.Address(0, 0) & " : " & cell.Value & vbNewLine
End If
End If
Next cell
End If
If Found Then MsgBox str, vbExclamation, "Values Not Found!"
End Sub

关于excel - 单元格中的值以匹配我拥有的列表并对其下的每个单元格进行匹配(标题不好),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43101876/

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