Excel VBA工作薄 5.3多個(gè)工作薄數(shù)據(jù)匯總2判斷文件是否打開

前景提要

今天我們接著上次的分享來繼續(xù),上次我們分享了在合并多個(gè)工作薄的過程中,將文件夾內(nèi)Excel文件批量打開的操作,今天我們繼續(xù)完善昨天的代碼较坛,在上節(jié)我們留下了一個(gè)懸念,如果在合并工作薄的過程中扒最,出現(xiàn)了如下的提示


image.png

要如何處理丑勤,很多的人會(huì)說可以選擇Y,沒錯(cuò)這樣操作的話吧趣,程序是可以繼續(xù)執(zhí)行的法竞,但是如果不巧這個(gè)文件你剛剛修改了某些數(shù)據(jù),如果你這個(gè)時(shí)候選擇了Y强挫,那么不好意思岔霸,你之前的所有改動(dòng)都沒有保存,你需要重新做一份新的數(shù)據(jù)俯渤,是不是很煩躁呆细,所以在批量打開工作薄的時(shí)候,需要先判斷當(dāng)前工作薄是否已經(jīng)被打開八匠,如果被打開的話絮爷,我們就不要操作再次打開了。聽起來似乎是一個(gè)判斷梨树,沒錯(cuò)坑夯,今天我們就來看看這個(gè)判斷要如何來寫。

場(chǎng)景模擬

我們還是繼續(xù)之前模擬的數(shù)據(jù)來分析抡四,假設(shè)我們我們現(xiàn)在已經(jīng)打開了京東2這個(gè)工作薄柜蜈,并對(duì)其中的某些數(shù)據(jù)進(jìn)行了修改,我們?nèi)绻€是繼續(xù)執(zhí)行上節(jié)的代碼的話床嫌,就會(huì)出現(xiàn)提示文件被打開的提示跨释,如果選擇Y會(huì)導(dǎo)致我們修改的數(shù)據(jù)沒有報(bào)錯(cuò),如果我們選擇N厌处,則會(huì)提示程序運(yùn)行被中斷鳖谈,程序結(jié)束

image.png

方法分析

判斷文件是否被打開,我們來想想如果是我們自己手工操作的話阔涉,我們?nèi)绾闻袛喙ぷ鞅∈欠癖淮蜷_呢缆娃,當(dāng)然就是看看當(dāng)前已經(jīng)打開的工作薄中是否有我們將要打開的工作薄,那么要如何去判斷呢瑰排?很簡(jiǎn)單遍歷所有已經(jīng)打開的工作薄贯要,然后讀取已經(jīng)被打開的工作薄,看看其中是否有我們要打開的那個(gè)工作薄椭住,我們要判斷天貓1的工作薄是否被打開崇渗,那么我們就遍歷讀取當(dāng)前被打開的工作薄,看看他們的名字是否有叫做天貓1的,如果有宅广,我們就不能再次執(zhí)行打開的操作了葫掉,需要跳過打開的命令,直接讀取數(shù)據(jù)跟狱,反之如果有沒有天貓1的工作薄俭厚,我們既可以正常的打開操作了,來看下例子驶臊。

代碼區(qū)

假設(shè)我們現(xiàn)在已經(jīng)提前打開了京東2這個(gè)工作薄挪挤,并且更改了數(shù)據(jù),但是還沒有保存关翎,我們執(zhí)行下匯總程序

image.png

有報(bào)錯(cuò)扛门,我們?cè)谡{(diào)整下代碼

Sub test()

Dim pathn, sth As Workbook

pathn = ThisWorkbook.Path

f = Dir(pathn & "\")

Do While f <> ""

    If f <> "test.xlsm" Then

        For Each sth In Workbooks

            If sth.Name = f Then

                GoTo line

            End If

        Next sth

        Workbooks.Open (pathn & "\" & f)

    End If

line:

    f = Dir()

Loop

End Sub

看看效果,在我們已經(jīng)提前打開京東2這個(gè)工作薄的情況下笤休,程序依然能夠正常的運(yùn)行尖飞,并且打開其他的工作薄,這樣切好也滿足了我們的要求店雅,很完美政基,這里如果可以上傳動(dòng)畫的話,效果應(yīng)該會(huì)更加的明顯闹啦,可以好像無法上傳動(dòng)畫沮明,那么腦海中惡補(bǔ)下這個(gè)過程吧

代碼分析

For Each sth In Workbooks

            If sth.Name = f Then

                GoTo line

            End If

        Next sth

這里是遍歷所有已經(jīng)被打開的工作薄的意思,F(xiàn)or Each sth In Workbooks就是這個(gè)目的

然后讀取每個(gè)工作薄的名字窍奋,如果發(fā)現(xiàn)這個(gè)工作薄的名字正好和我們將要打開的工作薄的名字是相同的荐健,那么就跳轉(zhuǎn)去執(zhí)行其他的代碼,這里的goto line就是這樣的意思琳袄,調(diào)準(zhǔn)到line這一行


image.png

繼續(xù)從這一行開始執(zhí)行新的命令江场,新的命令就是繼續(xù)準(zhǔn)備打開下一個(gè)工作薄,當(dāng)前已經(jīng)被我們提前打開的工作薄京東2將會(huì)被關(guān)閉窖逗,也不會(huì)被再次打開址否,所以我們所作的數(shù)據(jù)操作也不會(huì)丟失了。我們來調(diào)試下碎紊,方便大家理解下程序執(zhí)行的過程


image.png

當(dāng)循環(huán)遍歷的時(shí)候佑附,如果碰到工作薄的名字等于我們要打開的工作薄的時(shí)候,我們看仗考,程序不會(huì)執(zhí)行打開的命令音同, 反而去執(zhí)行調(diào)準(zhǔn)的命令了。

image.png

大家領(lǐng)悟到了嘛秃嗜?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末权均,一起剝皮案震驚了整個(gè)濱河市顿膨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌叽赊,老刑警劉巖虽惭,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蛇尚,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)顾画,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門取劫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人研侣,你說我怎么就攤上這事谱邪。” “怎么了庶诡?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵惦银,是天一觀的道長。 經(jīng)常有香客問我末誓,道長扯俱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任喇澡,我火速辦了婚禮迅栅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘晴玖。我一直安慰自己读存,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布呕屎。 她就那樣靜靜地躺著让簿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪秀睛。 梳的紋絲不亂的頭發(fā)上尔当,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音琅催,去河邊找鬼居凶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛藤抡,可吹牛的內(nèi)容都是我干的侠碧。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼缠黍,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼弄兜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤替饿,失蹤者是張志新(化名)和其女友劉穎语泽,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體视卢,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡踱卵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了据过。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惋砂。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖绳锅,靈堂內(nèi)的尸體忽然破棺而出西饵,到底是詐尸還是另有隱情,我是刑警寧澤鳞芙,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布眷柔,位于F島的核電站,受9級(jí)特大地震影響原朝,放射性物質(zhì)發(fā)生泄漏驯嘱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一竿拆、第九天 我趴在偏房一處隱蔽的房頂上張望宙拉。 院中可真熱鬧,春花似錦丙笋、人聲如沸谢澈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锥忿。三九已至,卻和暖如春怠肋,著一層夾襖步出監(jiān)牢的瞬間敬鬓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工笙各, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钉答,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓杈抢,卻偏偏與公主長得像数尿,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子惶楼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容