[已编辑] 很抱歉我没有很清楚地描述这一点:我的问题是关于 VLookup 函数:我使用了如下代码:
B5'n$CX$"
目的是让 VBA 转到 B5 工作表,并确定它必须转到哪个“n”(n25 n35 等)。
这是行不通的,所以我在这里寻求是否可以得到任何建议。
以下是原帖:
我是 VBA 的新手,刚开始接触它一两次。我修改了下面的代码,我的目标是让 VBA 找到“DI”&i 的值,这取决于电子表格 B5 中“DE”&i 的值,但在 B5 中,数字“n”取决于"CX"&i 的值,当 VBA 去查找 "DE"&i 的值时,它必须首先借助值 "CX"&i 来确定 n 的值。工作表B5的截图如下:
https://www.dropbox.com/s/do6i7zeylaz0sch/B5.jpg?dl=0
我的代码如下:
首先,如果“DE”&i >3.9,我希望 VBA 设置“DI”&i = 0,否则使用 vlookup 功能。非常感谢您的任何帮助和建议。赞赏。
Sub FindPl()
For i = 2 To 1730
If .Cells("DE" & i).Value > 3.9 Then .Cells("DI" & i).Value = 0
Else: .Cells("DI" & i).Value =
Application.WorksheetFunction.VLookup($DE$" &
i&",'[C:\Users\chenj5\Documents\Meeting_Jan_2019\simulation of Z1.9 for
Ultra Multi-Focal\Meeting 0220\Dataset used for simulation]B5'n$CX$" &
i&", 2, True)
End If
Next cell
Next i
End Sub
将尝试一些示例代码......我猜测你的源数据并修复了一些语法错误......花一些时间更新和适当的尺寸标注。您发布的代码发生/错误太多,无法提供更清晰的内容。
Sub FindPl()
dim i as long, wb as workbook, OUTPUTRANGE as range, SEARCHRANGE as range
set wb = "C:\Users\chenj5\Documents\Meeting_Jan_2019\simulation of Z1.9 for Ultra Multi-Focal\Meeting 0220\Dataset used for simulation.xlsx" 'added xlsx extension
with wb
set OUTPUTRANGE = .range(.cells(5,"D"),.cells(100,"D")) 'guessed... the range with the desired output
set SEARCHRANGE = .range(.cells(5,"B"),.cells(100,"B")) 'guessed... the range where you will find .cells(i,"DE")
end with
with activeworkbook.sheets(1) 'FIX THIS TO FIT YOUR NEEDS
For i = 2 To 1730
If .Cells(i, "DE").Value > 3.9 Then 'FIXED SYNTAX ERROR
.Cells(i, "DI").Value = 0
Else:
.Cells(i, "DI").Value = Application.Index(OUTPUTRANGE, Application.Match(.cells(i, "DE").value,SEARCHRANGE, 0))
End If
Next
end with
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句