中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Excel VBA 5.23 新番 工作簿含有空行、合計(jì)行如何匯總

前景提要

最近我們都在學(xué)習(xí)工作簿的匯總和合并操作,不過(guò)可能是因?yàn)槲业拇竽X細(xì)胞比較有限,所涉及的場(chǎng)景比較少,小伙伴們也是提出了一些新的場(chǎng)景要求,所以,這里我們作為新番的形式,和大家分享。

好,進(jìn)入正題,今天我們要合并的工作簿的場(chǎng)景呢,是這樣的

有空行,又有合計(jì)字段,還有最后還有合并單元格的頁(yè)尾。

當(dāng)然我們并不需要合并這些空行,頁(yè)尾了,我們需要的僅僅是中間的數(shù)據(jù)部分,那么面對(duì)今天這樣的場(chǎng)景,我們要如何合并呢?

場(chǎng)景說(shuō)明

既然已經(jīng)有了空行,那么我們這里肯定不能使用Useadrange了,因?yàn)檫@個(gè)時(shí)候的使用區(qū)域,明顯包含了空行和頁(yè)尾的那些部分

而我們需要的僅僅是中間的核心數(shù)據(jù)。

不過(guò)我們可以觀察到,數(shù)據(jù)中既然有合計(jì)字段,合計(jì)字段是數(shù)據(jù)源和其他的頁(yè)尾標(biāo)識(shí)區(qū)域的分水嶺

發(fā)現(xiàn)了這一點(diǎn),那么問(wèn)題就簡(jiǎn)單了很多了,我們只需要獲得合計(jì)這個(gè)字段所在的單元格行數(shù),然后就可以將整個(gè)數(shù)據(jù)源一分為二了。

一分為二之后呢?

我們就會(huì)得到兩個(gè)區(qū)域,從上圖中可以看到,有些區(qū)域是有空行的,那么這樣的情況下,又要如何操作呢?

so easy!

你獲得A列的最后一個(gè)非空單元格不就可以了嗎?

如果非空單元格的行數(shù)大于合計(jì)的行數(shù),那就是說(shuō)明有空格了。

OK,有了思路,那么直接看代碼

代碼區(qū)

Sub test23()Dim sth As Worksheet, rng As Range, urng As Range, sbook As Workbook, sb As WorkbookSet sbook = ThisWorkbookpathn = ThisWorkbook.Pathf = Dir(pathn & "\")Do While f <> ""l1 = Cells(Rows.Count, 1).End(xlUp).RowIf f <> "5-23.xlsm" Then For Each sb In Workbooks If sb.Name = f Then GoTo line End If Next sb Workbooks.Open (pathn & "\" & f) l = Cells(1, 1).End(xlDown).Row With ActiveSheet.UsedRange Set rng = .Find(What:="合計(jì)", LookIn:=xlValues, _ LookAt:=xlWhole, SearchDirection:=xlPrevious) rngRow = rng.Row End With If l > rngRow Then Set urng = Range(Cells(2, 1), Cells(rngRow - 1, 5)) urng.Copy sbook.Worksheets(1).Cells(l1 + 1, 1) Else Set urng = Cells(2, 1).Resize(l - 1, 5) urng.Copy sbook.Worksheets(1).Cells(l1 + 1, 1) End If ActiveWorkbook.Close TrueEnd Ifline:f = Dir()LoopEnd Sub

看看效果


代碼解析

OK 直接進(jìn)入代碼

其實(shí)說(shuō)到底,今天的代碼并沒(méi)有太多的知識(shí)點(diǎn)

都是我們之前套用的模板,不過(guò)這里稍微做了一點(diǎn)修改而已

VBA最大的好處,就是這里,一個(gè)輪子,可以循環(huán)使用多次,只要場(chǎng)景對(duì)的上就OK

今天主要來(lái)學(xué)習(xí)一個(gè)方法,就是單元格的查找

Set rng = .Find(What:="合計(jì)", LookIn:=xlValues, _ LookAt:=xlWhole, SearchDirection:=xlPrevious)

就是他

單元格的查找,大家肯定非常的熟悉,CTRL+F誰(shuí)不會(huì)呢?

不過(guò)今天我們的這個(gè)查找,有點(diǎn)意思,他是倒序查找,從單元格UsedRange的最后面往前面找

這樣的好處是什么呢?

我們可以看到合計(jì)都是出現(xiàn)在頁(yè)尾的,那考慮到數(shù)據(jù)量的問(wèn)題,肯定是從最后面查找的更快啦,從前面要遍歷的單元格,可能會(huì)很多,導(dǎo)致代碼執(zhí)行時(shí)間過(guò)長(zhǎng),所以這里是執(zhí)行的倒序查找。

找到了這個(gè)合計(jì)之后,就可以按照我們上面說(shuō)的,和A列的最后非空單元格進(jìn)行對(duì)比了。

如果大于

合計(jì)這一行,往上移動(dòng)一行,所得到的這個(gè)區(qū)間,就是我們要的核心數(shù)據(jù)

如果小于

那就和合計(jì)的位置沒(méi)有關(guān)系了,直接去最后一個(gè)非空單元格網(wǎng)上的一個(gè)連續(xù)區(qū)域即可。

本次的代碼看起來(lái)很簡(jiǎn)單,但是思路和方法才是最重要的,當(dāng)然方法也不是唯一的,小伙伴們有什么其他的思路呢?

本節(jié)課的案例源碼已經(jīng)上傳,需要的小伙伴后臺(tái)私信“5-23-X1”,希望大家多支持~~,多多關(guān)注 ~ ~

好了,明晚21:00,準(zhǔn)時(shí)再見(jiàn)!


因?yàn)楣娞?hào)沒(méi)有留言功能(開(kāi)的比較晚),所以建立一個(gè)線下微信群,主要為大家提供一個(gè)交流的平臺(tái),同時(shí)大家也可以提一些對(duì)公眾號(hào)的意見(jiàn)和看法,大家一起學(xué)習(xí),一起進(jìn)步。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
完全手冊(cè)Excel VBA典型實(shí)例大全:通過(guò)368個(gè)例子掌握
Excel VBA工作薄5.6難度升級(jí)!
Excel VBA之工作薄 5.5批量工作薄標(biāo)準(zhǔn)數(shù)據(jù)的匯總
Excel事件示例(一)
vbacopysheet
30個(gè)有用的Excel VBA代碼
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服