gpt4 book ai didi

excel - 将单元格与 A 列进行比较,如果 B 列匹配,则写 X

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

我一直试图在网上找到可以帮助我的东西,但没有运气。我正在尝试将 A 列中的值与单元格 E1 中的值进行比较,如果匹配,我想在 A 列中匹配项旁边的 B 列中放置一个 X。

这是我到目前为止的代码:

     Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim a As Integer
Dim i As Integer
Dim x As Range
Dim y As Range

a = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
i = Worksheets("Sheet1").Range("E1")
x = Worksheets("Sheet1").Range("B1:a")
y = Worksheets("Sheet1").Range("A1:a")

'For Each cell In y
'if y = i then
'print "X" in column B next to the value


'MsgBox (i)
End Sub

提前感谢您的帮助

最佳答案

这里有几件事值得一提。当您想使用 .Range 指定范围时您必须指定 : 两侧的列;此外,它需要一个字符串。这意味着您传递的是 "B1:a"这对计算机没有意义,因为它不知道您希望它使用 a 的值而不是字母。您需要通过"B1:B" & a.Range .这样做的目的是将您在变量 a 中找到的值连接到字符串,使其在计算机中显示为一个字符串。

我个人认为将所有值作为列向量而不是使 x 变暗更容易。是 range因为它使迭代更容易一些。 Counter 不是跟踪我在哪一行总是会告诉我我在哪里,因为我只是向下移动一列。作为额外的好处,这减少了您访问工作表的时间,这有助于加速您的宏。

尽管它已被注释掉,但值得注意的是,您的 sub 底部的循环不起作用,因为您没有正确关闭 if 或 for。

我不确定您的意图是什么,但是使用有意义的名称绝不是一个坏主意,这样您就可以回顾您的代码并毫不费力地弄清楚它。例如,我已将您的 a 重命名为可变为 lastrow一目了然地描述了它存储的值。

在您更改的代码下方

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim lastrow As Long
Dim Criteria As Long
Dim x() As Variant
Dim Counter As Long

lastrow = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
Criteria = Worksheets("Sheet1").Range("E1").Value
x = Worksheets("Sheet1").Range("B1:B" & lastrow).value

For Counter = 1 To UBound(x)
If x(Counter,1) = Criteria Then
Worksheets("Sheet1").Cells(Counter, "B").Value = "X"
End If
Next Counter
MsgBox (Criteria)
End Sub

关于excel - 将单元格与 A 列进行比较,如果 B 列匹配,则写 X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52822308/

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