我试图在excel中编写vba代码来执行以下操作序列:
我一直试图通过各种vlookup实现这一目标并找到没有运气的功能组合(我是新手)。
真的很感激任何可以提供帮助的人。这肯定让我很头疼!
如果您需要更多信息或上述步骤不清楚,请与我们联系。
Sooo .....这就是我目前使用VBA代码的地方。请记住,我希望它能够执行Loocid在下面提供的确切功能....
Sub IF_FUNCTION()
If InStr(W8.Value, "Word1") > 0 Then
Range("V3").Value = Application.WorksheetFunction.Index(Sheets("Sheet2").Range("B3:B171"), Application.WorksheetFunction.Match(Range("W7").Value, Sheets("Sheet2").Range("A3:A171"), 0), "")
End If
End Sub
答案 0 :(得分:0)
如斯科特所述,你可以在没有VBA的情况下做到这一点。
在V3中尝试此公式:
=IF(W8<>"word", INDEX(sheet2!B3:B171, MATCH(W7, sheet2!A3:A171, 0)), "")
答案 1 :(得分:0)
喜欢这个吗?
Option Explicit
Sub IF_FUNCTION()
Dim wb As Workbook
Dim ws As Worksheet
Dim ws2 As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Worksheets("Sheet1")
Set ws2 = wb.Worksheets("Sheet2")
With ws
If InStr(1, .Range("W8"), "Word1") > 0 Then
.Range("V3") = Application.WorksheetFunction.Index(ws2.Range("B3:B171"), Application.WorksheetFunction.Match(.Range("W7"), ws2.Range("A3:A171"), 0), 1)
End If
End With
End Sub
答案 2 :(得分:0)
谢谢QHarr。我刚刚结束使用以下内容。它有效,但你认为速度等会有任何问题吗?我使用它的次数越多?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$W$8" Then
Range("V3").Value =[IF(W8<>"Word1",INDEX(sheet2!B3:B171,MATCH(W7,Sheet2!A3:A171,0)),"")]
End If
End Sub
感谢Loocid的帮助,无法完成该功能。