轉轉大師PDF轉換器
支持40多種格式轉換,高效辦公
在Excel中,如果我們需要算公式的時候我們一般都是使用宏表函數VALUATE來實現,但是這個有一個不方便的點就在于如果我們算式和計算結果的列相對位置發生變化時,不能直接修改公式,而是要再次定義名稱。今天小編就來給大家分享下取代這個又超級方便的操作方法。
Excelman認為使用自定義函數是不錯的替代方法。下面是自定義函數EVALUATEVBA的代碼。函數的代碼只有三行!諸位幾乎不需要考慮任何VBA代碼邏輯,簡單易用??傊?,名副其實拿來即用!
代碼如下:
Public Function EVALUATEVBA (ByVal s As String) As Variant
EVALUATEVBA = Application.Evaluate(s)
End Function
自定義函數EVALUATEVBA怎么樣使用呢?
先把自定義函數的三行代碼添加到工作簿的模塊中。之后就能在工作簿里使用自定義函數EVALUATEVBA了。代碼添加到工作簿的模塊具體操作步驟請看下圖二。
那么,函數EVALUATEVBA有什么作用呢?它的作用與宏表函數EVALUATE相似,但用起來方便多啦!
比如上述圖一求算式的計算結果問題,B1單元格直接填寫公式 =evaluatevba(A2),向下填充公式,OK!
之前Excelman在窩窩的微信公眾號發表過一篇《奇招解難題,另類使用Max函數求最大值》[教程最后左下角“閱讀原文”點擊直達]。文中表妹的問題若用EVALUATEVBA,做法來得更直接。
如圖四,要求從B列的裝箱號“1,3,4,5”得到最大值5顯示在C列的裝箱號最大值。C1單元格填寫公式 =evaluatevba("=max({"&B2&"})") 或=MAX(evaluatevba("{"&B2&"}")),向下填充公式,又OK!
從=MAX(evaluatevba("{"&B2&"}"))這個公式可以看出,自定義函數evaluatevba和宏表函數evaluate一樣,可以將符合數組書寫規則的字符文本,如“{1,3,4,5}”這樣的字符文本,轉為讓Excel函數能夠識別的作為計算數據的數組。
Evaluatevba有時給填充公式提供相當大的便利。比如下圖四,假設工作簿中有名為“1月、2月、3月”的工作表,A列列示的是工作表名,現在需要在B列分別計算出3個工作表B列的數量(數字)的合計數。可以這樣做:B2單元格填寫公式
=evaluatevba("=SUM('"&A2&"'!B:B)")&T(NOW()),然后向下填充公式。T(NOW())的作用是令Excel在工作表數據變動時重新計算更新計算結果。B2單元格的公式,其效果與
=SUM('1月'!B:B) 相同,但是使用自定義函數EVALUATEVBA的好處是可以直接向下復制填充公式。
以上就是今天給大家分享的關于完美替代宏表函數EVALUATE的三行代碼,有需要的小伙伴們可以根據以上步驟進行操作,如果需要pdf轉html可以使用topdf轉換器。