999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VBA實現按合并單元格拆分Excel工作表

2018-06-19 02:14:18姚曄石翠
無線互聯科技 2018年3期

姚曄 石翠

摘要:在Excel應用中,部門信息常見的格式設置,一種是占據一列,另一種格式為合并單元格,占據一行,文章討論的是后一種,通過合并單元格的判定,確定要包含的數據范圍,然后復制到以合并單元格提取的內容作為新建工作簿命名的文件中去。

關鍵詞:VBA;合并單元格;Excel

1 問題提出

在Excel應用中,常會遇到以合并單元格拆分數據[1],如圖1所示。

2 解決方法

經過多次嘗試,在Excel表格中,簡單的函數功能無法實現,因此選擇采用宏(Macro)來實現。 宏是一種批處理,是一些命令組織在一起,作為一個單獨命令完成一個特定任務。Microsoft O伍ce辦公軟件自動集成“VBA”高級程序語言,使用宏語言Visual Basic將宏作為一系列指令來編寫[2]。

定義宏seprateExcel

Sub seprateExcel()

End sub

2.1合并單元格的判定

合并單元格為班級信息,通過MergeCells來判定[3]。

Duni As Long

Dim titleCounts As Long

titleCounts=3

Dun RowCounts As Long

RowCounts= Cells(Rows.Count, l).End(xlUp).Row

Dim cel As Range

For i=titleCounts+1 To RowCounts

Set cel= Range("A"&i;)

If cel.MergeCells Then

End If

Nexti

End Sub

2.2計算列

計算總列數的前提條件是最后一列必須保證為數據,因為列標題行所有單元格都有數據,因此,選擇標題行計算工作表的列數,再以列數得到最后一列的字母列名,這樣無論是Office哪一個版本,都可以通過計算獲得[4]。

columnTitleRow=3

Dim ColumnCounts As Long

ColumnCounts=Cells(columnTitleRow, Columns.Count).End(xlToLeft).Column

卜計算最后一列的列名

Dim columnLetter As String

num= ColumnCounts

Do While num>0

columnLetter=Chr《num -1)Mod 26+65)&columnLetter;

num= Int《num -1)/26)

Loop

2.3提取合并單元格內容

titleCounts=3

RowCounts= Cells(Rows.Count, l).End(xlUp).Row

Dim sourceFile As String

sourceFile=”成績表.xls"

Dim targetFile As String

Dim targetFilewithPath As String

Dim cel As Range

For i=titleCounts+1 To RowCounts

Set cel= Range("A"&i;)

Ifcel.MergeCells Then

targetFile= Trim(cel)&".xls"

targetFilewithPath=ThisWorkbook.Path&”\”&Trim;(cel)&”.xls”

Workbooks.Add

ActiveWorkbook.SaveAs targetFilewithPath

Windows(sourceFile).Activate

End If

Nexti

2.4復制表頭

Windows(sourceFile).Activate

ThisWorkbook.Sheets("sheetl").Activate

Range("Al:"&columnLetter;&titleCounts;).Copy

Windows(targetFile).Activate

Range("Al").Select

ActiveSheet.Paste

2.5復制內容

拆分工作表,首先確定拆分范圍。起止行的判定也是通過合并單元格的判定來完成。

Dim BeginRow As Long, EndRow As Long

For i=titleCounts+1 To RowCounts

Set cel= Range("A"&i;)

Ifcel.MergeCells Then

Ifi>titleCounts+1 Then

EndRow=i-1

Windows(sourceFile).Activate

ThisWorkbook.Sheets (" sheetl").Activate

Range( "A" & BeginRow & ":" & columnLetter &EndRow;).Copy

Windows(targetFile).Activate

Range("Al").Select

ActiveSheet.Paste

End If

targetFile= Trim(cel)&”.xls” targetFilewithPath=ThisWorkbook.Path&”\”&Trim;(cel)&”.xls”

Workbooks.Add

ActiveWorkbook.SaveAs targetFilewithPath

Windows(sourceFile).Activate

BeginRow= 1+1

End If

Nexti

EndRow= RowCounts

Windows(sourceFile).Activate

ThisWorkbook.Sheets(" sheetl").Activate

Range("A"&BeginRow;&”:”&columnLetter;&EndRow;).Copy

Windows(targetFile).Activate

Range("Al").Select

ActiveSheet.Paste

3 結語

由于微軟辦公自動化軟件Office的普及,包含在其中的各個組件都可以利用VBA,VBA的應用有助于使工作自動化,可以使這些軟件的應用獲得更高的工作效率。另外,由于VBA可以直接應用Office套裝軟件的各項強大功能,所以,對Office進行二次程序設計和程序開發更加方便快捷。

[參考文獻]

[1]廖麗嶸基于Excel VBA的成績管理系統[J].現代計算機(專業版),2012( 23):64-66

[2]高世萍,翟濱,廉鎖原.基于Excel函數及Excel VBA的成績分析[J].電腦學習,2011(1):18-19.

[3]李利民.基于Exce12007 VBA的學生成績管理系統的設計與實現[J]電腦知識與技術,2010(5):1128-1129,1137

[4]格林.Excel 2007 VBA參考大全[M].Excel Home,譯北京:人民郵電出版社,2009

主站蜘蛛池模板: 亚洲一区二区黄色| 久久久国产精品无码专区| 一级毛片无毒不卡直接观看| 日韩无码白| 亚洲天堂在线视频| 999国内精品久久免费视频| 一级毛片基地| 亚洲一区二区三区在线视频| 99激情网| 韩国v欧美v亚洲v日本v| 久一在线视频| 国产成人免费手机在线观看视频| 亚洲三级a| 国产高清国内精品福利| 国产青榴视频| 无码国内精品人妻少妇蜜桃视频| 国产一级毛片yw| 亚洲天堂网视频| 91麻豆国产在线| 国产精品一线天| 国产区91| 免费 国产 无码久久久| 在线毛片免费| 日韩精品一区二区三区中文无码| 香港一级毛片免费看| 亚洲无码高清一区| 97精品久久久大香线焦| 亚洲 欧美 日韩综合一区| 亚洲日韩久久综合中文字幕| 国产视频a| 欧美日韩第二页| 视频二区国产精品职场同事| 最近最新中文字幕在线第一页| AV天堂资源福利在线观看| 久久91精品牛牛| 欧美中出一区二区| 一级爆乳无码av| 亚洲精品国产首次亮相| 九色国产在线| 成人亚洲国产| 综合亚洲网| 久久久久国产一区二区| 欧美性色综合网| 麻豆国产在线观看一区二区| 久久免费看片| 国产91麻豆视频| 2021无码专区人妻系列日韩| 青草91视频免费观看| 亚洲国产理论片在线播放| 欧美精品v欧洲精品| 亚洲欧美日韩成人在线| 国产精品美女免费视频大全| 亚洲成人一区二区三区| 国产日韩精品欧美一区喷| 欧美日韩激情在线| 亚洲另类国产欧美一区二区| 国产va在线观看免费| 久久国产乱子| 99热这里只有免费国产精品| 九九热精品在线视频| 国产精品密蕾丝视频| 亚洲最大综合网| 国产亚洲精| 欧美在线黄| 日本免费新一区视频| 精品久久久无码专区中文字幕| 国产乱子伦精品视频| 日韩精品亚洲人旧成在线| 2021国产精品自产拍在线观看| 波多野结衣无码AV在线| 2021国产在线视频| 国产69精品久久久久孕妇大杂乱| 亚洲三级影院| 三区在线视频| 亚洲一级毛片在线观播放| 亚洲黄色视频在线观看一区| 992Tv视频国产精品| www.精品视频| 亚洲欧美极品| 夜夜拍夜夜爽| 久久久精品无码一区二区三区| 亚洲综合在线最大成人|