我之前使用INDEX(MATCH())过这种形式的公式,但从未使用过通配符.任何人都可以解释为什么加入A2&"*"会返回一个错误值?我检查了数据,肯定应该匹配.
公式如下:
{=INDEX(I1:M1000,MATCH(1,(M1:M1000=Sheet3!B1)*(I1:I1000=A2&"*"),0),2)}
Run Code Online (Sandbox Code Playgroud) 我希望设置一个基本循环来设置工作表中每个形状的颜色,以匹配表中的相应单元格(条件格式).
我有以下内容
dim countryShape as shape
For Each countryShape In ActiveSheet.Shapes
countryShape.Range.Interior.Color = Application.VLookup(countryShape.Name, ActiveSheet.Range("D3:H19"), 2, 0).Interior.Color
Next countryShape
Run Code Online (Sandbox Code Playgroud)
但是,我得到了一个
运行时错误424,'对象必需'
我猜这是与颜色应用的格式有关(即.interior.color用于单元格和.fill.forecolor用于形状)但是我到目前为止尝试的任何组合还没有工作.
努力将普通的 excel 公式应用到 R1C1 格式中,以便我可以在 VBA 中循环该公式。问题是如何使用 R1C1 表示法引用其他工作表中的列。所以在下面的公式中:
ell.Offset(0, 5).FormulaR1C1 = "=IF(LEN(R[]C[-2])>0,(R[]C[-2])*VLOOKUP([R[]C[1]),Core!A:C,3,FALSE)/_
VLOOKUP(R[]C[-1],Core!A:C,3,FALSE),R[]C[4])"
Run Code Online (Sandbox Code Playgroud)
如何将 Core!A:C 转换为 R1C1 格式?我知道你不能混合这两种格式,但恐怕我不知道这个语法!任何帮助表示赞赏!
编辑:
Sub Expo_dos_Formulas()
'===============================================================================
Sheets("Data_Sheet").Activate
For Each cell In Range("G5:G500")
If cell <> "Error" Then
cell.Offset(0, 5).FormulaR1C1 = "=IF(LEN(R[]C[-2])>0,_
(R[]C[-2])*VLOOKUP([R[]C[1]),Core!RC1:RC3,3,FALSE)/VLOOKUP(R[]C[-1],_
Core!RC1:RC3,3,FALSE),R[]C[4])"
End If
Next
'===============================================================================
End Sub
Run Code Online (Sandbox Code Playgroud)