2013-03-27 90 views
1

我正在嘗試將公式分配給引用在每次迭代中更改的單元格。然而,下面這個任務的左邊看起來很有效,因爲如果我把右邊的「=」「Test」「」「,它似乎就起作用了。使用變量和單元格引用分配單元格公式

我想這個問題是與我的公式在右側。有一個字符串的組合,每個循環迭代都會改變一個變量,並從一個單元格中獲取一個值。

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

我在想這個問題可能是與工作表和單元格引用中的引號有關。

+0

你試過調試嗎? 「BR」和「Worksheets」(「Lims」)的值是什麼?範圍(「A3」)值' – 2013-03-27 16:14:47

+0

BR只是一個字符串,而A3中的值是一個日期。 – Epictetus 2013-03-27 16:28:38

+0

好吧那麼你用上面的代碼期待什麼輸出(可以說一會兒)? – 2013-03-27 16:32:00

回答

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.0024850894632206830/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) 
+0

完美的工作!謝謝 - 只有一件事日期格式以十進制形式出現,但是當我嘗試進行以下更正''&TEXT(「&_ Worksheets(」Lims「)。Range(」A3「)。Value&_ 「,」&Chr(34)&「dd-mmm-yy」&Chr(34)&_ 「)」'日期爲00-Jan-00 ... – Epictetus 2013-03-27 16:59:27

+0

刷新頁面:)我已經在上面的帖子中提到過;) – 2013-03-27 17:02:25

+0

好的,謝謝剛剛閱讀上面的編輯!非常感謝您的幫助和耐心:) – Epictetus 2013-03-27 17:02:33

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

相關問題