gpt4 book ai didi

vba - Excel VBA将值与列进行比较

转载 作者:行者123 更新时间:2023-12-04 22:33:02 25 4
gpt4 key购买 nike

我有以下问题:
我有一个 2 列 A 和 B 的 Excel。在 A 中有不同的序列号,可以包含不同 B 值的值。在行之间,两列中都可以有空单元格。

VBA脚本需要做什么:
脚本必须获取 B 的值并在 A 列中搜索该值。请记住:值可以是:A567=2174/ENJFA7384 和 B45=ENJFA7384 -> 这意味着它们匹配。如果它们匹配,则应在 C 列中写入“X”。如果 A 中 B 的值不匹配,它将继续。

我试图实现这一点并且它可以工作,但是程序崩溃了,因为它效率很低。这里的代码(该脚本将单元格标记为黄色而不是写“X”):

Sub suchen()
'in Spalte A nach einem Namen suchen
'die Zeilen farblich markieren und
'die Anzahl der Treffer anzeigen

Dim suche As String
Dim z As Integer

Dim a As Range, b As Range

Set a = Range("P2:P391")

For Each b In a.Rows

suche = b.Value

'hier ändern falls eine andere Spalte durchsucht werden soll
[B10].Activate

'wenn keine Eingabe in InpuBox erfolgte wird abgebrochen
If suche = "" Then Exit Sub

'bis zur ersten leeren Zelle suchen
Do Until ActiveCell = "STOP"
'eine Zeile nach unten gehen
ActiveCell.Offset(1, 0).Activate
'wenn die Zelle den gesuchten Wert enthält:
If ActiveCell Like suche Or ActiveCell Like "*" & suche Or ActiveCell = suche Then

'und die Zelle gelb markieren
ActiveCell.Interior.ColorIndex = 36
End If
Loop
Next

End Sub

如果有任何问题,请随时提出。
关于如何使这项工作的任何想法?任何新的想法都受到高度赞赏。
提前谢谢你!

编辑
这是脚本应该做什么的示例图片:
The yellow marks don't have to be made.

最佳答案

为什么要打扰vba?

您只需要 C 列中的这个:

=if(A1=B1,"X","")

评论后编辑:查看所有 A 列 - 您可以设置范围:
=IF(IFERROR(MATCH(B1,A1:A10,0),FALSE),"X","")

只需输入单元格 C1 或您要开始的任何单元格,确保“B1 或 B16”是您要检查的第一个单元格并向下拖动...

编辑 2 查看图片并注意“No Val”更新...
enter image description here

关于vba - Excel VBA将值与列进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51278025/

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