希望這裏有人能夠幫助我: 我試圖計算樣本協方差出長數據集我有一個工作表,使用我有信息第二個工作表來選擇每個樣本。 包含所述數據集的第一個工作表,命名爲「C1%規範」看起來像這樣:如何在使用vba變量的單元格中插入公式
| A | B | C | D | E | F |
1 |throw|temp |depth| s | c | sp |
2 60 0,3 0,456 0,123 ... ...
.. ... ... ... ... ... ...
189 61 0,42 ... ... ... ...
.. ... ... ... ... ... ...
375 62 0,35 ... ... ... ...
..
第二工作表包含要使用的,命名爲「Mapeo槍」,並且每個「擲」或樣品的極限看起來是這樣的:
| A | B | C |
1 |throw|lim i|lim s|
2 60 2 188
3 61 189 374
4 62 375 ...
所以基本上需要做什麼,是計算的樣本協方差如「TEMP」和「深度」使用行2和188之間的數據(第一個工作表中)作爲樣本,然後使用第189-374行的數據作爲樣本,依此類推......
我寫了這個代碼:
Sub covariances()
Dim i As Integer
Dim limi As Integer
Dim lims As Integer
Dim test As String
i = 2
Sheets("Mapeo Lances").Select
While i < Cells(Rows.count, 1).End(xlUp).Row + 1
limi = Range("B" & i).Value
lims = Range("C" & i).Value
test = "=covariance.s('C1% Norm'!B" & limi & ":B" & lims & ";'C1% Norm'!C" & limi & ":C" & lims & ")"
Range("D" & i).Formula = test
i = i + 1
Wend
End Sub
,但我得到了以下錯誤: 運行時錯誤:「1004」 應用程序定義或對象定義的錯誤
我知道「測試」字符串是正確連接;如果我刪除字符串開頭的「=」符號,則單元格會填充所需的文本而不會出錯。
我知道我可以得到它使用這個工作:
...
dim range_i as Range
dim range_s as Range
...
while...
...
set range_i = Worksheet("C1% Norm").Range("B" & limi & ":B" & lims)
set range_s = Worksheet("C1% Norm").Range("C" & limi & ":C" & lims)
Range("D" & i).value = Application.WorksheetFunction.Covariance_S(range_i,range_s)
wend
但我確實需要爲教學目的的每個單元格的公式...我在做什麼錯?
感謝A.S.H,這兩種解決方案工作就像一個魅力! – Patux