Office 實戰案例分享,做有意義的事情,每天進步一點點,今天比昨天好,這不就是希望麼?
問題:今天學習群裡有網友問到這麼一個問題,就是如何像狀态欄那樣不通過公式隻通過鼠标選取就能得出2個數的差值。
這個問題倒是提的挺新穎哈, 我們都知道通過狀态欄可以進行一些很簡單的計算,但是看了一下,貌似沒有相減的計算啊,那怎麼辦?我們這裡可以借助VBA來模拟這種效果。
1.模拟數據
2.插入代碼
為了模拟随時能夠自如計算,這裡要用到VBA代碼工作表SelectionChange事件,
代碼解析:
在選擇為2個單元格的時候觸發事件,然後調用excel的狀态欄來顯示兩個單元格數據的差值。
大家注意看下面的動圖左下角的數值變化:
這裡面有2個知識點:
1).Application.statusbar,可以改變狀态欄的顯示,我們平時寫代碼,當碰到數據很多或者運行時間稍微長一點的時候,想了解代碼運行進度的時候一般會用這個來顯示,可以知道循環到哪裡了。
2).target(i)這裡其實是用到的range的item屬性,可省略,表示在單元格區域的元素,順序是從左到右然後從上到下的。當然這裡也可以用offset。
這裡模拟的是連續單元格的差值,要是不相連單元格區域或者不止2個單元格那代碼就要修改了。
3.不連續2個單元格差值
由于不連續,所以我們循環遍曆取值進行相減
4.任意多個單元格求差值
這裡默認第一個選中的單元格為被減數,後面的為減數進行求差值,我們隻要取消條件判定即可。
5.工作簿裡 任意多個單元格求差值
前面幾個例子都是用的工作表事件,隻能把代碼放在相對應的工作表下面才能生效,想要整個工作簿都能運行的話,得改用workbook的sheetselectionchange事件
6.還原狀态欄
注意我們這裡用代碼修改了狀态欄的話,它是不會自動還原的,可能影響我們下次正常使用。我們這裡要進行還原,很簡單, 當關閉工作簿的時候,将其 賦值為空值即可。
總結 :
如果Excel默認功能不能實現的話,我們可以用代碼來解決,有時候甚至不需要很複雜的代碼就可以實現一般人覺得不可能的事情。
需要掌握知識點:
- VBA事件
- Statusbar狀态欄屬性
- Item屬性
喜歡的請關注|收藏|點贊|轉發|評論吧,刻意練習,并獲得正面反饋是精進成長的必要法寶,而你的互動将有助于你我共同的成長,謝謝!
————
運營:Excel365
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!