我想整天想出这个。这就是我需要完成的事情:
听起来很复杂,但让我证明一下。这些字母代表列名。
选定的工作簿 A2 = 12 M2 =“”
参考工作手册 A2 = 12 B2 =牛奶,蛋白质
期望的结果:
精选工作手册
A2 = 12 M2 =牛奶,蛋白质
到目前为止,这是我的代码:
Sub Click()
Dim rCell As Range, vVal1, vVal2
Dim wbCheck As Workbook
For Each rCell In Workbooks("2.xls").Worksheets(1).Range("A1:C100")
vVal1 = rCell
vVal2 = ThisWorkbook.Worksheets(1).Range(rCell.Address)
If IsNumeric(vVal1) And IsNumeric(vVal1) Then
If vVal1 = vVal2 Then
rCell.Interior.ColorIndex = 3
ElseIf vVal1 < > vVal2 Then
End If
End If
Next rCell
End Sub
答案 0 :(得分:0)
为什么需要VBA代码?
这可以使用Excel公式实现。
将其粘贴到M2
并将其复制
=IF(A2='C:\[Ref.xlsx]Sheet1'!A2,'C:\[Ref.xlsx]Sheet1'!B2,"")
我的假设(请根据情况更改)
Sheet1
中提取数据修改强>
即使你想使用VBA,你也可以这样做。
Sub Sample()
Application.Calculation = xlCalculationManual
ThisWorkbook.Sheets("Sheet1").Range("M2").Formula = _
"=IF(A2='C:\[Sample.xlsx]Sheet1'!A2,'C:\[Sample.xlsx]Sheet1'!B2,"""")"
Application.Calculation = xlCalculationAutomatic
End Sub
上述公式或代码是有益的,因为您在第1点提到的内容Using GetFile select a number of workbooks without opening them.
如果您不想打开文件,那么formula
或formula in VBA
就是您的选择:)
答案 1 :(得分:0)
我解决了自己的问题。答案是使用VLookup。
= VLOOKUP(I2,'C:\ Desktop \ Merge [ISReference.xlsx]参考'!B2:G1923,6,FALSE)
我很惊讶没有人向我建议。鉴于它的简单性,我能够将这个函数构建到我构建的一些代码中,以便在访问和使用Vlookup链接外部工作簿的表单上运行FSO文件列表选择器。
感谢Siddarth提供了嵌入函数的正确方向,而不是疯狂的迭代循环。