小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

跨表求和沒(méi)那么復(fù)雜,遍歷+循環(huán)兩三行代碼一下子就搞好了!

 EXCEL應(yīng)用之家 2024-12-22 發(fā)布于上海


歡迎轉(zhuǎn)發(fā)和點(diǎn)一下“看”,文末留言互動(dòng)!

置頂公眾號(hào)或設(shè)為星標(biāo)及時(shí)接收更新不迷路



小伙伴們好,今天來(lái)和大家聊一聊跨表求和的問(wèn)題。通常講,跨表求和需要用到INDIRECT函數(shù),而且對(duì)源數(shù)據(jù)有一定的格式要求。否則公式書(shū)寫(xiě)過(guò)程將非常痛苦。

但是在VBA環(huán)境下,跨表求和則要簡(jiǎn)單得多。今天就是這樣的一個(gè)例子。



在不同的工作表中存放著物料數(shù)據(jù)。部分工作表以“倉(cāng)庫(kù)”命名并編號(hào)。現(xiàn)在需要我們按照倉(cāng)庫(kù)來(lái)計(jì)算某種物料的總數(shù)量。名稱中不包含“倉(cāng)庫(kù)”的則不參與計(jì)算。

這是一個(gè)遍歷的過(guò)程。

01

跨表求和就是一個(gè)遍歷過(guò)程



完整代碼如下:

Sub 跨工作表統(tǒng)計(jì)求和()    Dim Mname As String, total As Integer, mysht As Worksheet, i As Integer    total = 0    Mname = InputBox("請(qǐng)輸入需要統(tǒng)計(jì)的物料")    If Mname = "" Then MsgBox ("不能輸入空值"): Exit Sub    For Each mysht In Worksheets        If Left(mysht.Name, 2) = "倉(cāng)庫(kù)" Then            i = 2            Do While mysht.Cells(i, 1) <> ""                If mysht.Cells(i, 1) = Mname Then                    total = total + mysht.Cells(i, 2)                End If                i = i + 1            Loop        End If    Next    Sheet1.[A1] = "物料"    Sheet1.[B1] = "總數(shù)量"    Sheet1.[A2] = Mname    Sheet1.[B2] = totalEnd Sub

整個(gè)代碼的邏輯思路比較簡(jiǎn)單,遍歷工作表及每個(gè)工作表的數(shù)據(jù)區(qū)域。

Mname = InputBox("請(qǐng)輸入需要統(tǒng)計(jì)的物料")If Mname = "" Then MsgBox ("不能輸入空值"): Exit Sub

利用InputBox對(duì)話框來(lái)對(duì)變量Mname賦值。若未輸入則提示“不能輸入空值”并退出。

For Each mysht In Worksheets    If Left(mysht.Name, 2) = "倉(cāng)庫(kù)" Then        i = 2        Do While mysht.Cells(i, 1) <> ""            If mysht.Cells(i, 1) = Mname Then                total = total + mysht.Cells(i, 2)            End If            i = i + 1        Loop    End IfNext

循環(huán)過(guò)程。外側(cè)循環(huán)遍歷工作表。若工作表名稱中含有“倉(cāng)庫(kù)”二字,則內(nèi)側(cè)循環(huán),遍歷工作表數(shù)據(jù)區(qū)域,判斷物料名稱。符合判斷者對(duì)數(shù)量進(jìn)行累加。



    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多