如何將VBA函數變量中的值返回給Excel 2010中的定義的名稱?如何將Excel VBA變量分配給定義的名稱
在下面的例子中,我想i
返回到Excel作爲一個定義的名稱Value_Count
可以在其他公式中重複使用,這樣如果MsgBox
顯示7,然後在單元格中鍵入=Value_Count
也將返回7.
下面的一切都是關於我所嘗試的,以及爲什麼我想要這樣做。如果它不可取,我很樂意知道爲什麼,以及是否有更好的方法。
Function process_control_F(raw_data As Variant)
Dim i As Integer
i = 0
For Each cell In raw_data
i = i + 1
Next cell
MsgBox i
End Function
我的目標是讓MsgBox返回的值返回到一個可以在其他論壇中重用的Defined Name。但是,我無法獲得顯示的價值。我已經嘗試了各種形式(太多在這裏回顧,更別說型)類似
Names.Add Name:="Value_Count", RefersTo:=i
我試圖做到這一點,而不返回一噸的額外的信息細胞,只記得它,因此,希望直接回到一個定義的名字。
我正在使用函數而不是Sub來簡化我的使用,但如果這是問題,我肯定可以更改類型。
我正在創建一個統計控制圖的版本。我期望的最終結果是捕獲一個數據範圍(通常約336個值),並向它們應用一系列控制規則(通過VBA),然後將超出控制參數的任何值返回到可以繪製的定義名稱或否則操縱。
我已經看過(並且有版本)的電子表格,可以實現這一點,數字英畝的幫助列導致圖表和彙總統計。我試圖完成它主要是在VBA的背景下,通過定義名稱調用圖表 - 我只是無法從VBA中獲取值到圖表。
使用函數而不是Sub的興趣是簡化對它的訪問。我寧願不設計一個用戶界面(或使用一個),如果我只需將該功能鍵入單元格並直接訪問結果。然而,正如讓 - 弗朗索瓦科貝特所指出的那樣,這很快就變成了我的目標的一條迂迴路線。不過,我仍然認爲這是值得的,因爲從長遠來看,我有很多重複的分析工作,所以爲了將來節省時間,一些設置時間是值得的。
函數的美妙之處在於,如果你不希望它返回一個單元格,爲什麼使用定義的,而不是變量名返回了自己的價值XD?如果你設置了'process_control_F = i','x = process_control_F'就可以工作 – findwindow
你能澄清一下你想要做什麼嗎?下面的答案看起來像仍然有點混亂。你能否再解釋一下大局,希望我們不會以「[XY問題]」爲結尾(http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem )。 – BruceWayne
如果你在一個單元格中鍵入'= Value_Count',怎麼知道'raw_data'輸入應該是爲了計算'i'?您提出的將函數返回值轉換爲定義名稱的方法對我來說毫無意義。我無法幫助。當然有一種方法可以實現你的目標(我仍然不清楚),但肯定不是這樣。 –