寵物集市-寵物集市華東、華南、華北排行榜一覽表
815
2025-03-31
Excel利用VBA進(jìn)行多表合并計算實例教程
在Excel中,用數(shù)據(jù)透視表可以輕松進(jìn)行多個區(qū)域的數(shù)據(jù)合并計算。但當(dāng)區(qū)域較多時,要在數(shù)據(jù)透視表向?qū)е卸啻芜x擇區(qū)域,稍顯繁瑣。如果需要合并的工作表較多,可以用下面的VBA代碼來快速合并數(shù)據(jù)。區(qū)域的大小可以不同,各行或列的品種可以重復(fù),但要求工作簿中各工作表中的數(shù)據(jù)存放在相同的位置。如下圖為工作簿中某兩個工作表中的數(shù)據(jù),區(qū)域的起始位置都是E5單元格:
方法是:將要存放合并數(shù)據(jù)的工作表命名為“匯總”,刪除工作簿中沒有合并數(shù)據(jù)的工作表,各工作表中要合并的數(shù)據(jù)右側(cè)和下邊沒有其他數(shù)據(jù)。然后在VBA編輯器中運(yùn)行下面的代碼:
Sub Summary()Worksheets("匯總").[e5].CurrentRegion.ClearContentsOn Error Resume Next
Dim sh As WorksheetFor Each sh In ActiveWorkbook.SheetsIf sh.Name <> "匯總" ThenWith sh‘獲取工作表中數(shù)據(jù)區(qū)域的行數(shù)i = .[e65536].End(xlUp).Row‘獲取工作表中數(shù)據(jù)區(qū)域的列數(shù)j = .[iv5].End(xlToLeft).Column‘將各工作表區(qū)域按R1C1樣式存入tempstr字符串中,各區(qū)域之間用","隔開tempstr = tempstr & "’" & sh.Name & "’!R5C5:R" & i & "C" & j & ","End WithEnd IfNext‘清除tempstr字符串中最后一個","tempstr = Left$(tempstr, Len(tempstr) – 1)‘將tempstr字符串中的各區(qū)域名存入一維數(shù)組arr中arr = Split(tempstr, ",")
‘將各個區(qū)域的數(shù)據(jù)合并計算到"匯總"表Worksheets("匯總").[e5].Consolidate arr, xlSum, True, TrueWorksheets("匯總").[e5] = Sheet1.[e5]End Sub
上述代碼將工作簿中除“匯總”表以外的所有工作表中從E5單元格開始的區(qū)域合并計算到“匯總”表中
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。