【发布时间】:2017-03-31 15:56:37
【问题描述】:
我正在尝试编写代码来查看(“输入工作表”)中活动列中的行是否与不同工作表(“Sheet2”)中某个范围内的单元格的内容相匹配。
如果内容匹配,代码将直接获取 ("Sheet2") 中单元格右侧的单元格内容,并将其放入 ("Input Sheet") 中活动列的第 39 行。
我知道这很可能与代码的范围部分有关,但我并没有真正找到解决方案。
任何帮助将不胜感激。
Sub yellowgrey()
Dim y As Range
With y = Sheets("Sheet2").Range(Cells(2, 1), Cells(131, 1))
If Sheets("Input Sheet").Cells(38, ActiveCell.Column).Value = Sheets(“Sheet2”).Cells(y, 1) Then
Sheets("Input Sheet").Cells(39, ActiveCell.Column) = Sheets("Sheet2").Cells(y, 2)
End If
End With
End Sub
【问题讨论】:
-
您需要限定每个 Range 对象,其中包括
Cells()及其相应的父对象:Set y = Sheets("Sheet2").Range(Sheets("Sheet2").Cells(2, 1), Sheets("Sheet2").Cells(131, 1))并且您需要将对象设置为不使用,因此删除End With -
另外你不能使用 y 作为 Range 变量作为 Cells() 中的一行,因为这需要很长的时间。
-
(你也从来没有
Sety。) -
我照你说的做了,Scott 仍然收到 Object required 错误?
-
你的代码有很多问题,不清楚你想让它做什么,所以很难帮助。请在原始帖子中发布帖子/模拟数据和预期输出并进行编辑。您正在混淆 Ranges 和 Longs,您正在尝试将整个范围与单个单元格进行比较,并且列表还在继续。我们需要更多信息来帮助您。