tft每日頭條

 > 科技

 > 從别的excel引用數據

從别的excel引用數據

科技 更新时间:2025-03-01 07:27:57

前段時間,偶然看到一位名叫“KINGSON1412”的粉絲朋友私信提及兩個問題“1、如何引用12個月份的工作簿裡面的sheet1工作表的單元格出來?;2、不想将同一個文件夾的12個月份的工作簿導入到一個工作簿裡面而直接進行最後單元格求和”,事實上,他的這個問題,如果說解決的話,我之前有一期頭條文章和西瓜視頻的作品關于“成功實現基于VBA下批量導入外部Excel相同格式文件數據”已經比較完美解決了這位粉絲朋友的問題,按理說,我今天無需再老生常談啰嗦了吧。但是呢,我覺得還是有必要做,主要是關于不導入外部數據的情況隔空統計數據問題也算是一個小亮點吧。為了佐證該粉絲提的問題,我特意截圖。如下圖所示

從别的excel引用數據(如何做到不導入統計外部數據或引用外部Excel數據)1

圖1 “KINGSON1412”粉絲的提問截圖

說實在話,如果說是引用外部數據,我們可以通過跨文件路徑引用的方式進行,比如在工作表單元格可以用公式:='路徑\[外部的Excel文檔文件名]工作表'!單元格 的形式實現,當然,這種引用方式是比較簡單的,但是不足之處是較為機械不夠靈活,尤其是外部有多個Excel工作簿文檔時,就顯得有些力不從心。所以,從高級應用的意義上講,VBA後台技術應該才是解決這種問題的首選方案,同時也很容易達到解決不導入外部數據直接統計的效果。

為此,我們先來看看如何解決該“KINGSON1412”粉絲的第一個問題“如何引用12個月份的工作簿裡面的sheet1工作表的單元格出來?”,然後再看第二個問題“不想将同一個文件夾的12個月份的工作簿導入到一個工作簿裡面而直接進行最後單元格求和”如何解決。對于第一個問題,有了之前的類似頭條作品,應該說是理解起來是較為容易的,第二個問題,即是我們本次作品的創新點,還是先來解決第一個問題吧。

一、用VBA後台技術強勢“引用”外部多個工作簿數據

為什麼我們這裡的引用要打上雙引号呢?其目的是說明,我們表象上給人感覺是引用外部數據,事實上是從外部捕獲吸取數據,說本質一點就是複制外部多個工作簿數據,而且從“感覺上”給人是沒有打開外部這些多個工作簿文件的感覺。

(一)增加兩個前端交互按鈕

為了實現交互的友好性,我們增設了簡單的交互按鈕。如下圖

從别的excel引用數據(如何做到不導入統計外部數據或引用外部Excel數據)2

圖2 前端界面

(二)準備一些外部的Excel工作簿文檔素材并統一命名

為了方便操作,我們準備了如下圖所示的外部Excel工作簿數據素材。如下圖所示

從别的excel引用數據(如何做到不導入統計外部數據或引用外部Excel數據)3

圖3 備用的外部Excel工作簿數據素材

(三)後台功能代碼實現

我們還是以截圖的方式給各位呈現。如下系列截圖所示

從别的excel引用數據(如何做到不導入統計外部數據或引用外部Excel數據)4

圖4“引用”外部數據VBA後台功能代碼截圖1

從别的excel引用數據(如何做到不導入統計外部數據或引用外部Excel數據)5

圖5“引用”外部數據VBA後台功能代碼截圖2

從别的excel引用數據(如何做到不導入統計外部數據或引用外部Excel數據)6

圖6“引用”外部數據VBA後台功能代碼截圖3

(四)“引用”外部數據VBA後台執行效果體驗

1、點擊前端表單控件按鈕<彙集同路徑下的外部Excel文檔數據>,将看到“引用”外部數據成功的效果。如下圖所示

從别的excel引用數據(如何做到不導入統計外部數據或引用外部Excel數據)7

圖7 “引用”外部數據成功的效果

2、如果已經完全導入外部數據了,而此時再次強行點擊前端表單控件按鈕<彙集同路徑下的外部Excel文檔數據>,将看到“禁止操作”的提示。如下圖所示

從别的excel引用數據(如何做到不導入統計外部數據或引用外部Excel數據)8

圖8 完全導入外部數據後将不允許進行再次導入操作

3、如果沒有外部數據,而此時強行點擊前端表單控件按鈕<彙集同路徑下的外部Excel文檔數據>,将看到“先準備外部數據”的提示。如下圖所示

從别的excel引用數據(如何做到不導入統計外部數據或引用外部Excel數據)9

圖9 沒有外部數據将提示用戶先準備外部數據

二、用VBA後台技術輕松實現不導入外部多個工作簿數據的數據統計

這一點,我剛才就說了,比較容易辦到,給人感覺上是沒有打開外部數據工作簿實施外部數據統計,事實上,我們也是利用了和上面類似的方法,隻不過,我們無需導入外部數據而已,統計的操作機理是再程序運行中完成數據的統計和統計結果數據的回傳而已,這樣也減小了程序運行的時間複雜度和空間複雜度,使得運行更加高效。前端界面涉及和備用的外部數據素材在上面已經說明了,這裡我們至分享實現的功能代碼和執行效果截圖。

(一)後台功能代碼實現

同上面一樣,我們還是以截圖的方式給各位呈現。如下系列截圖所示

從别的excel引用數據(如何做到不導入統計外部數據或引用外部Excel數據)10

圖10 不導入外部數據實現統計數據的VBA功能代碼截圖1

從别的excel引用數據(如何做到不導入統計外部數據或引用外部Excel數據)11

圖11 不導入外部數據實現統計數據的VBA功能代碼截圖2

(二)不導入外部數據而統計外部數據的執行效果體驗

1、點擊前端表單控件按鈕<僅彙總外部Excel文檔數據累加和>,将看到不導入外部數據而統計外部數據成功的效果。如下圖所示

從别的excel引用數據(如何做到不導入統計外部數據或引用外部Excel數據)12

圖12 不導入外部數據而統計外部數據成功的效果

2、如果已經統計過來不導入的外部數據了,而此時再次強行點擊前端表單控件按鈕<僅彙總外部Excel文檔數據累加和>,将看到“禁止操作”的提示。如下圖所示

從别的excel引用數據(如何做到不導入統計外部數據或引用外部Excel數據)13

圖13 已經統計過來不導入的外部數據後将不允許進行再次統計操作

3、如果沒有外部數據,而此時強行點擊前端表單控件按鈕<僅彙總外部Excel文檔數據累加和>,将看到“先準備外部蘇劇”的提示。如下圖所示

從别的excel引用數據(如何做到不導入統計外部數據或引用外部Excel數據)14

圖14 沒有外部數據将提示用戶先準備外部數據

好了,到現在為止,我們将該“KINGSON1412”粉絲的分享完了,這中間的“引用”外部Excel工作簿數據技術實際上是利用了“拷貝”外部Excel工作簿數據的行為(語法:“源數據區域.Copy Destination:=目标數據區域”),通過循環,每次都用一個臨時的工作簿對象變量去指向打開的外部工作簿文(打開的工作簿文檔為了隐藏其顯示,我們利用“Windows(工作簿名稱).Visible=False”方法實現視覺上的不顯示),然後用一個數據範圍區域對象指向具體要“拷貝”的該工作簿的數據區域,“拷貝”該區域的數據到目标工作簿指定的區域,最後,不保存源外部數據的工作簿文檔形式進行關閉(語法:“源外部數據工作簿.Close False”),至此,就完成了功能意義上的外部工作簿數據的形式上的“引用”;另外,“不導入外部工作簿數據的情況下實現對外部數據的統計計算”其實和“引用”外部工作簿數據的方法類似,隻是省去了“拷貝”外部的數據的功能,替代的是直接每循環一次,都統計一下打開的臨時外部數據,除此之外,其它的都和“引用”的方法完全一緻。現在,大家可以比對我之前的做過的類似案例的,進行選擇适合自己的方法解決外部數據導入和統計的問題了,大膽去試試吧!

最後,還是那句老話,非常感謝各位粉絲朋友的長期關注(頭條号:跟我學Office高級辦公)、推廣和對作品的點評!疫情快過去了,現在已經是深秋了,天氣也已經驟然降溫了,大家可要多多注意身體健康别感冒哦,與此同時,也請多多關注我的Office高級辦公其他的後續原創作品哦!謝謝!

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved