使用变量和单元格引用分配单元格公式

时间:2013-03-27 16:09:33

标签: string excel-vba excel-formula vba excel

我正在尝试将公式分配给每次迭代时引用都发生变化的单元格。然而,下面作业的左侧似乎有效,因为如果我将右侧“=”“测试”“”,它似乎有效。

我猜问题就在于右边的公式。有一个字符串组合,一个随每个循环迭代而变化的变量和一个从单元格中获取的值。

    Worksheets("LimsOutput").Cells(4, 2 + 14 * i).Formula = "=" & BR & " Blah blah " & Worksheets("Lims").Range("A3").Value

我认为问题可能与工作表和单元格引用中的引号有关。

2 个答案:

答案 0 :(得分:0)

下面是一个简单的例子。我希望这会对你有所帮助。

 Sub sample()
    Dim lastRow As Long
    lastRow = Range("A65000").End(xlUp).Row

    Dim rng As Range
    Set rng = Range("B1:B" & lastRow)

    Dim BR As String
    BR = "STRING"

    rng.Formula = BR & " Blah blah " & cstr(Range("$A$3"))

End Sub

enter image description here

答案 1 :(得分:0)

Excel单元格中的连接公式在您的情况下将如下所示

 = "String" & " Blah Blah " & "30/06/2012"

要将其转换为代码,请使用CHR(34)作为双引号和"&"

参见此示例

Worksheets("LimsOutput").Cells(4, 2 + 14 * i).Formula = "=" & _
                                                        Chr(34) & BR & Chr(34) & _
                                                        "&" & _
                                                        Chr(34) & " Blah blah " & Chr(34) & _
                                                        "&" & _
                                                        Worksheets("Lims").Range("A3").Value

还有一件事:)

Worksheets("Lims").Range("A3").Value会为0.00248508946322068

提供30/06/2012

因此,上面的代码会提供类似STRING Blah blah 0.00248508946322068的输出。要最后得到日期,您还必须在日期之前和之后添加CHR(34)。例如

Worksheets("LimsOutput").Cells(4, 2 + 14 * i).Formula = "=" & _
                                                        Chr(34) & BR & Chr(34) & _
                                                        "&" & _
                                                        Chr(34) & " Blah blah " & Chr(34) & _
                                                        "&" & _
                                                        Chr(34) & Worksheets("Lims").Range("A3").Value & Chr(34)