我正在尝试做两件事,弄清楚Value1> = 3 AND Value2-Value1> =5。如果为true,那么我希望在与Value2相同的行中的特定单元格中显示YES 。我已经可以使用它了,但是我意外地将代码覆盖了,现在我已经在寻找解决方案并试图修复它达数小时之久,但是我似乎找不到它在起作用时的工作。请帮忙!
Sheet1:
名称= RandomName 值1 = 6
Sheet2:
名称= RandomName 值2 = 20
SELECT * FROM recipeingredient
WHERE ingredient_id IN (6,7)
--using IN clause
SELECT * FROM recipeingredient
WHERE ingredient_id=6 OR
ingredient_id=7
-- using OR
'定义活动单元格-这将查找与Value1和Value2相同的唯一标识符
Sub Ifgreaterthan()
Dim vFind
Dim lLoop As Long
Dim rFound As Range
Dim Sheet1 As Range
Dim REF As Variant
Dim NEW1 As Variant
Dim REFDELNEW1 As Integer
Dim x As String
Dim y As String
'这会在另一张纸中寻找唯一标识符
vFind = ActiveCell
On Error Resume Next
'这些是基于唯一标识符的值
With Sheet1
Set rFound = .UsedRange.Find(What:=vFind, After:=.Cells(1, 1),
LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, MatchCase:=False)
'变量是和否
REF = WorksheetFunction.VLookup("rFound", "Sheet1!A:B", 2, 0)
NEW1 = WorksheetFunction.VLookup("vFind", "Sheet2!A:B", 2, 0)
REFDELNEW1 = NEW1 - REF
“基本计算
x = "Yes"
y = "No"
我曾经按预期获得了否,但我设法丢失了代码。我确定答案在那里,因为我使用的是Excel VBA跟踪更改日志,因此我可以确定在某个时候它做了应做的事情。我已经花了数小时试图重现这种情况,但现在不确定该在哪里寻找或做什么。我希望专业人士能够立即发现解决方案。同时,我还将自己编写代码。
答案 0 :(得分:0)
因此,我最终找到了一个比我的问题更简单的解决方案。请注意,您使用的ActiveCell很重要。
这是当前问题的解决方案:
Sub Greaterthan()
Dim REF As Integer
Dim DEF As Integer
On Error Resume Next
REF = ActiveCell.Offset(, 3).Value
DEF = Application.Index(Sheets("Sheet1").Range("A1:A100"),
Application.Match(Sheets("Sheet2").Range(ActiveCell.Address),
Sheets("Sheet1").Range("B5:B1000"), 0))
Number = 3
x = "Yes"
y = "No"
If (REF - DEF) > Number Then
ActiveCell.Offset(, 3).Value = x
Else
ActiveCell.Offset(, 3).Value = y
End If
End Sub