Excel VBA,将公式与VBA相结合

Excel VBA,将公式与VBA相结合,excel,vba,Excel,Vba,我有下面的vba代码,它把一个公式放在一个单元格中 .Range("D" & lastrow + 1).Formula = "=INDEX(Spread!$C:$C, MATCH(1,INDEX((A330 = Spread!$A:$A) * (""Stack"" =Spread!$B:$B),),0))" 如何将公式中的A330更改为类似于工作表(“管理器”)的vba代码。范围(“C2”)。值只需使用&运算符将其像普通字符串一样连接即可。由于您不是在连接文本,而是在连接VBA对象,

我有下面的vba代码,它把一个公式放在一个单元格中

 .Range("D" & lastrow + 1).Formula = "=INDEX(Spread!$C:$C, MATCH(1,INDEX((A330 = Spread!$A:$A) * (""Stack"" =Spread!$B:$B),),0))"

如何将公式中的
A330
更改为类似于
工作表(“管理器”)的vba代码。范围(“C2”)。值

只需使用
&
运算符将其像普通字符串一样连接即可。由于您不是在连接文本,而是在连接VBA对象,因此不要在对象周围加引号

"=INDEX(Spread!$C:$C, MATCH(1,INDEX((" & Worksheets("Manager").Range("C2").Value & "= Spread!$A:$A) * (""Stack"" =Spread!$B:$B),),0))"

只需使用
&
操作符将其像普通字符串一样连接即可。由于您不是在连接文本,而是在连接VBA对象,因此不要在对象周围加引号

"=INDEX(Spread!$C:$C, MATCH(1,INDEX((" & Worksheets("Manager").Range("C2").Value & "= Spread!$A:$A) * (""Stack"" =Spread!$B:$B),),0))"

您还可以将数据存储在变量中,并使用它代替A330。通过这种方式,您可以随时在代码中的任何地方使用新创建的变量

myData = Worksheets("Manager").Range("C2").Value
.Range("D" & lastrow + 1).Formula = "=INDEX(Spread!$C:$C, MATCH(1,INDEX((myData = Spread!$A:$A) * (""Stack"" =Spread!$B:$B),),0))"

您还可以将数据存储在变量中,并使用它代替A330。通过这种方式,您可以随时在代码中的任何地方使用新创建的变量

myData = Worksheets("Manager").Range("C2").Value
.Range("D" & lastrow + 1).Formula = "=INDEX(Spread!$C:$C, MATCH(1,INDEX((myData = Spread!$A:$A) * (""Stack"" =Spread!$B:$B),),0))"

谢谢我想你在
.value
的末尾加了一个
。不过我有点麻烦,
工作表(“Manager”).Range(“C2”).value
在公式中提供了正确的值,这与
A330
相同。但这是一个日期,不确定是否匹配正确。谢谢。我想你加了一个
.value
的末尾。但是我在这方面遇到了问题,
工作表(“Manager”).Range(“C2”).Value
在公式中提供了正确的值,这与
A330
相同。。但这是一个日期,不确定是否匹配正确。