VBA異常處理和工作表排序

2021-10-08 15:11:20 字數 1812 閱讀 2852

晚上還要加班,今天就不多bb了,直接放個demo好了

簡單異常處理

option explicit

sub errhandlingone()

'異常處理示例

'err.number物件顯示錯誤**,error(err.number)顯示於錯誤**對應錯誤型別

'err物件預設屬性是err.number 所以可以省略

on error resume next

msgbox 1 / 0

if err.number <> 0 then

msgbox "發生錯誤,錯誤**為:" & err.number & ",錯誤型別為:" & error(err.number), , "錯誤提示"

end if

end sub

sub errhandlingtwo()

'異常處理示例

'err物件預設屬性是err.number 所以省略.number也可以正常執行

on error resume next

msgbox 1 / 0

if err <> 0 then

msgbox "發生錯誤,錯誤**為:" & err & ",錯誤型別為:" & error(err), , "錯誤提示"

end if

end sub

下面是對工作簿內的工作表進行排序

option explicit

dim shtcount as integer

sub sortsheet()

'工作表排序

'先設定螢幕別滾動

'第一步遍歷工作簿中所有工作表的名稱,儲存在shtname變數中

dim shtnames() as string

dim i as integer

shtcount = worksheets.count

redim shtnames(1 to shtcount)

for i = 1 to shtcount

shtnames(i) = worksheets(i).name

next

'第二步:各工作表根據名稱進行排序

call bubblesort(shtnames)

'第三步:根據排序好的名稱,確定要放置在工作簿的位置

for i = 1 to shtcount

'將排序好的表放到對應的位置上

worksheets(shtnames(i)).move after:=worksheets(i)

next

'排序完了回到sheets(1)

worksheets(1).select

end sub

private sub bubblesort(shtnames() as string)

dim i as integer, j as integer, temp as string

'比較粗糙的氣泡排序,把sheets的表名作為引數傳進來,再重新排個順序

for i = 1 to shtcount

for j = i to shtcount

'加個ucase不區分大小寫

if ucase(shtnames(i)) > ucase(shtnames(j)) then

temp = shtnames(i)

shtnames(i) = shtnames(j)

shtnames(j) = temp

end if

next j

next i

end sub

VBA 遍歷工作表的方法

在工作中,經常需要遍歷工作表,這裡展示最基本的功能,查詢工作表的個數,其餘功能大同小異 方法一 sub test dim i as integer dim s as integer for i worksheets.count to 1step 1 s s 1next msgbox 共有 s 張表 ...

vba 批量新建工作表

一 c 列沒有重複值 初始表 插入工作表 sub shtadd rem 根據c列的值新建不同的工作表 dim i as integer,sht as worksheet i 2 第一條記錄的行號為2 set sht worksheets 成績表 dowhile sht.cells i,c 定義迴圈條...

異常和異常處理

程式執行遇到兩種錯誤 1.error 錯誤 致命錯誤,無法恢復執行 2.exception 異常 通過修正,繼續執行。異常類常用方法 1.tostring 返回描述異常物件資訊字串 2.getmessage 返回描述物件詳細資訊 處理方法 1.try catch finally 1 try中包涵可能...