我想在UDF函數中模擬內建「文本到字段」的結果。 我需要這樣做是因爲我的原始數據來自網絡查詢,我需要在單獨的頁面上使用結果並繪製這些結果。 對於繪圖,我需要缺少值來解析空單元格,因爲這是excel圖表顯示空缺值的唯一選項。excel VBA - 從函數返回可變長度數組
你不能這樣做與內建,因爲兩個限制;
1)它不能將解析的字段定位到另一個工作表上。
2)嘗試將數據值複製到目標工作表以解析出現故障,因爲text-to-field分析引用表達式而不是它引用的值。
3)我無法解析原始數據表,然後將解析的字段複製到目標工作表,因爲沒有表達式可以複製空單元格,它將轉換爲零值。 (畢竟,導致空單元格的表達式會自行刪除!)
因此,我需要一個DIY字段解析器,並且在任何情況下,使用公式都比我的整體需求更適合宏觀化內置函數(即使它會起作用)。
我的領域是這樣的:
calm
S 10
S 10 G 20
而且我希望他們分析只是作爲一個文本到油田是,這將使文本的數字數字,字符串和空失蹤字段(即較短的讀數)。
所以我使用了這段代碼;
Function Explode(texte As String, Optional ByVal delimiter As String = " ") _
As String()
' mimic the text-to-fields,
' but allow inter-sheet references
Explode = Split(texte, delimiter)
End Function
但使用它,我必須預先定義的函數調用單元作爲數組,這是固定大小的一部分,我不知道怎麼有這個返回可變數目解析領域成一個固定大小的數組。我從上面的樣本數據要的是:
但我得到的卻是:
注意空單元格必須是空的 - 不只是看空(不是「 「字符串)。
編輯: 我懷疑我可能改爲建立子這臺解析字段的值,並清除細胞的其餘失蹤領域(我總是最多四個領域都有),而不是返回他們,但我不是很熟練的VBA。例如,獲取兩個單元格引用的東西,一個用於源引用,另一個用於解析字段的目標列表。然後從函數中調用該函數,我可以將其嵌入到工作表中。基於副作用的編程...
讓困難見你會怎麼做這行由行使用UDF,當一些線條比其他線條短:任何給定的線條本身都需要知道「假定」有多少個字段。幾乎需要傳入一個附加參數來確定輸出中應該有多少個值。 –
你能提供一些樣本數據,或者更好的可下載測試存根嗎? –
你不能從函數中返回Empty,所以恐怕你的UDF不會做你想做的事情。你可以使用'Application.Caller.Count'來簡單調整你的輸出數組的值, – Rory