使用VBA中生成的公式在工作表之间引用

我在工作中一直在为Excel做一些VBA编码,并且遇到了这个问题。

基本上我试图填充一个基本公式,引用当前工作表和另一个工作表的单元格。

我试图input到一个单元格的公式基本上是… ='Sheet2'A(j) / B(i)用下面的代码

 For i = 1 To 5 For j = 1 To 5 With shOut.Cells(i,j) .formula = "='Sheet2'" & Cells(j,1)).Address & "/" & Cells(i,2).Address End With Next j Next i 

我遇到的部分是在开始时引用表单,因为当我在.formula运行它时,会触发一个错误。

但是,当我删除“=”符号并将其输出到.Value它将打印出我想要的内容,除非它不是一个公式。

任何帮助,将不胜感激。

谢谢

詹姆士

  1. 你有一个).formula开头的行太多了。
  2. 你错过了! 表格后:

     .formula = "=Sheet2!" & Cells(j,1).Address & "/" & Cells(i,2).Address 

您不必自己构build任何范围的地址 – 您只能通过这样做来解决潜在的问题。

例如,在cularis(非常好)的答案中,表单名称周围没有单引号。 在这种情况下,它们不是必需的,但是如果表单名称中有空格,那么您确实需要引号。 (我的观点是,你不应该知道 – 而且照顾 – 所有这些东西自己)。

相反,您可以在调用Address()指定External:=True ,它将为您提供一个包含工作表名称的地址。 我会做这样的事情:

 Dim oWorksheet1 As Worksheet Dim oWorksheet2 As Worksheet ... .Formula = oWorksheet1.Cells(j,1).Address(External:=True) & "/" & oWorksheet2.Cells(i,2).Address(External:=True) 

请注意,在你的情况下,你可能只需要为其中一个工作表使用External参数,但这样做额外的时间不会受到影响,因为Excel将简化公式。