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

主站蜘蛛池模板: 日本亚洲欧美在线| 国产精品熟女亚洲AV麻豆| 国产清纯在线一区二区WWW| 国产精鲁鲁网在线视频| 亚洲AⅤ无码国产精品| 久久精品人人做人人综合试看| 精品国产成人a在线观看| 好吊色妇女免费视频免费| 国产在线观看精品| 久久6免费视频| 亚洲性视频网站| 国产精品无码AV中文| 一本大道在线一本久道| 国内熟女少妇一线天| 在线色国产| 精品国产欧美精品v| 国产亚洲欧美日本一二三本道| 岛国精品一区免费视频在线观看| 女人18一级毛片免费观看| 亚洲开心婷婷中文字幕| 精品乱码久久久久久久| 国产色婷婷| 免费看的一级毛片| 99久久精品免费看国产电影| 天堂成人av| 男女性色大片免费网站| 在线观看亚洲国产| 国产尤物jk自慰制服喷水| 四虎永久在线精品国产免费| 亚洲综合18p| AV片亚洲国产男人的天堂| 亚洲日韩AV无码一区二区三区人| 成人免费午间影院在线观看| 国产成人av大片在线播放| 亚洲嫩模喷白浆| 色综合狠狠操| 91一级片| 国产jizzjizz视频| 欧美日韩国产一级| 在线免费亚洲无码视频| 亚洲天堂视频网站| 在线看片免费人成视久网下载| 99久久精品国产麻豆婷婷| 91久久偷偷做嫩草影院免费看| 亚洲精选无码久久久| 国产欧美日韩视频怡春院| 亚洲精品爱草草视频在线| 国产网友愉拍精品| 国产视频入口| 日韩欧美一区在线观看| 国产成人精品高清在线| 啪啪免费视频一区二区| 国产你懂得| 精品无码国产自产野外拍在线| 国产精品流白浆在线观看| 毛片卡一卡二| 日本不卡免费高清视频| 午夜限制老子影院888| 666精品国产精品亚洲| 波多野吉衣一区二区三区av| 国产成人在线无码免费视频| 久99久热只有精品国产15| 日本一区中文字幕最新在线| 欧美日韩中文国产| 99精品福利视频| 国产日韩精品一区在线不卡| 欧日韩在线不卡视频| 国产精品自拍露脸视频| 日本成人福利视频| 免费va国产在线观看| 狠狠色丁香婷婷| 久久久亚洲国产美女国产盗摄| 国产精品部在线观看| 亚洲欧美另类中文字幕| 欧美国产日韩另类| 色偷偷男人的天堂亚洲av| 欧美成人二区| a色毛片免费视频| 黄色成年视频| 日韩无码视频网站| 中文字幕2区| 久久99精品久久久久久不卡|