国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

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

開通VIP
使用VBA基于列中的值拆分工作簿
excelperfect

標(biāo)簽:VBA
下面的VBA代碼將基于活動(dòng)單元格所在的列中的唯一值拆分工作簿,也就是說,如果單元格所在的列中包含有重復(fù)的數(shù)據(jù)“一班”、“二班”、“三班”,則會(huì)將工作簿拆分成分別由“一班”、“二班”、“三班”所在行的數(shù)據(jù)組成的工作簿。
示例工作簿如下圖1所示。
1
代碼如下:
Sub FileSplitter() Dim i As Long Dim LastRow As Long Dim ColNum As Long Dim CountNum As Long Dim DictCount As Long Dim Dict As Object Dim Arr Dim wks As Worksheet Dim Path As String Dim wb As Workbook
Application.StatusBar = ''
Set wks = ActiveSheet
'獲取所選單元格所在的列號(hào).'如果選擇了多個(gè)區(qū)域,'獲取最左側(cè)列的列號(hào) ColNum = Selection.Column'如果所選列不包含數(shù)據(jù),則發(fā)送消息.'第1行是列標(biāo)題,因此<2是條件. If WorksheetFunction.CountA(Columns(ColNum)) < 2 Then MsgBox '所選列不包含數(shù)據(jù)' Exit Sub End If
Application.ScreenUpdating = False Application.DisplayAlerts = False
'使用字典獲取所選列唯一項(xiàng)列表 Set Dict = CreateObject('Scripting.Dictionary') LastRow = wks.Cells.SpecialCells(xlLastCell).Row'將所選列值放入數(shù)組中 ReDim Arr(1 To LastRow - 1, 1 To 1) Arr = wks.Range(Cells(2, ColNum), Cells(LastRow, ColNum))'遍歷所有數(shù)組項(xiàng),創(chuàng)建唯一值列表 For i = 1 To LastRow - 1 On Error Resume Next Dict.Add Arr(i, 1), Arr(i, 1) On Error GoTo 0 Next i'獲取Dictionary中的值到Arr DictCount = Dict.Count ReDim Arr(DictCount) Arr = Dict.Items Set Dict = Nothing
'提取代碼所在工作簿路徑. 在此保存所有文件. Path = ActiveWorkbook.Path
'基于數(shù)組項(xiàng)目應(yīng)用篩選,復(fù)制并粘貼到目標(biāo)工作簿'目標(biāo)工作簿名與數(shù)組項(xiàng)目名相同 For i = LBound(Arr) To UBound(Arr) '打開并復(fù)制數(shù)據(jù)到新工作簿 Set wb = Workbooks.Add  wks.AutoFilterMode = False  wks.UsedRange.AutoFilter Field:=ColNum,Criteria1:=Arr(i) wks.AutoFilter.Range.Copy wb.Worksheets(1).Range('A1').PasteSpecial (xlPasteAll) wb.Worksheets(1).Range('A1').Select  wb.SaveAs Filename:=Path & '\' & Trim(Arr(i)), FileFormat:=51 wb.Close Application.CutCopyMode = False CountNum = CountNum + 1 Application.StatusBar = '完成生成文件' & CountNum & ' of ' & DictCount & ' -' & Arr(i) Next i Application.StatusBar = DictCount & ' 個(gè)文件被生成' wks.AutoFilterMode = False Application.DisplayAlerts = True Application.ScreenUpdating = TrueEnd Sub
你的活動(dòng)單元格在不同的列,代碼會(huì)根據(jù)該列中的唯一值將數(shù)據(jù)拆分成不同的工作簿。
有興趣的朋友可以試試。在知識(shí)星球App完美Excel社群中可以下載示例工作簿。
歡迎在下面留言,完善本文內(nèi)容,讓更多的人學(xué)到更完美的知識(shí)。
歡迎到知識(shí)星球:完美Excel社群,進(jìn)行技術(shù)交流和提問,獲取更多電子資料,并通過社群加入專門的微信討論群,更方便交流。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Vba菜鳥教程[通俗易懂]
完全手冊(cè)Excel VBA典型實(shí)例大全:通過368個(gè)例子掌握
7,多工作簿多工作表查詢匯總?cè)ブ貜?fù)值(字典數(shù)組)
使用VBA按某列中的關(guān)鍵字拆分為單獨(dú)的工作簿
Excel VBA編程
Excel中字典應(yīng)用綜合示例
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服