VBA程式集 第4輯

2021-05-26 18:02:48 字數 3791 閱讀 3412

vba程式集

(第4輯)

for r = lastrow to 2 step -1

if ucase(cells(r, 1).value) <> "留下" then rows(r).delete '可以根據實際情況將條件進行更改,以實現需求.如更改列,或比較的值等

next r

示例文件見uploadfiles/2006-6/627521432.rar

**********************************

程式14(窗體控制項——文字框)

[程式功能] 在介面中有多個文字框,在文字框中輸入資料,當第乙個文字框達到最大輸入時,游標自動轉移到下乙個文字框。

[程式說明] 本示例在工作表中有乙個按鈕,單擊按鈕將顯示乙個窗體。窗體上有5個文字輸入框和乙個按鈕,輸入焦點在第乙個文字框,當第乙個文字框中輸入完後,游標自動轉入第二個文字框,依次類推,當最後乙個文字框輸入完成後,「確定」按鈕獲得焦點,單擊或按回車鍵將文字框中的資料輸入到工作表中。單擊「取消」按鈕將關閉窗體。

[程式**] 

『單擊工作表上的按鈕,顯示輸入窗體

private sub commandbutton1_click()

userform1.show

end sub

***************************

『各文字框**

private sub textbox1_change()

evaluatetextentry textbox1

end sub

private sub textbox2_change()

evaluatetextentry textbox2

end sub

private sub textbox3_change()

evaluatetextentry textbox3

end sub

private sub textbox4_change()

evaluatetextentry textbox4

end sub

private sub textbox5_change()

evaluatetextentry textbox5

end sub

**************************

『確定按鈕**

private sub donebutton_click()

dim nextrow as long

nextrow = range("a65536").end(xlup).row + 1

with activesheet

.range("a" & nextrow) = textbox1.text

.range("b" & nextrow) = textbox2.text

.range("c" & nextrow) = textbox3.text

.range("d" & nextrow) = textbox4.text

.range("e" & nextrow) = textbox5.text

end with

textbox1 = ""

textbox2 = ""

textbox3 = ""

textbox4 = ""

textbox5 = ""

textbox1.setfocus

end sub

**************************

『取消按鈕**

private sub cancelbutton_click()

unload me

end sub

**************************

『輸入焦點控制**

private sub evaluatetextentry(byval thetextbox)

if len(thetextbox.text) = thetextbox.maxlength then

if thetextbox.name = "textbox5" then

donebutton.setfocus

else

me.controls("textbox" & val(mid(thetextbox.name, 8)) + 1).setfocus

end if

end if

end sub

示例文件見uploadfiles/2006-6/627931716.rar

**********************************

程式15(物件集合)

[程式說明] 本示例建立物件集合並使用所建立的集合。

[程式**]

sub temp()

dim ws as worksheet

dim colmysheets as new collection

dim str as string

『新增工作表名中帶有「c」的工作表到新集合變數中

for each ws in activeworkbook.sheets

if instr(ws.name, "c") > 0 then

colmysheets.add ws

end if

next ws

『顯示新集合中工作表名

for each ws in colmysheets

str = str & ws.name & vblf

next ws

msgbox str

end sub

[程式擴充套件] 

(1)『宣告所建立的集合為全域性變數

public colmysheets as new collection

『可以在任何地方初始化所建立的集合變數,如在workbook_open事件中。

sub initcollection()

dim i as long

『對新集合變數進行清理

for i = 1 to colmysheets.count

colmysheets.remove 1

next i

『新增變數

colmysheets.add thisworkbook.sheets("sheet1")

colmysheets.add thisworkbook.sheets("sheet2")

end sub

(2)『可以指定集合在任何程式中或模組中,例如,如果想將工作表名放置在窗體中的列表框中,可在窗體初始化中加入以下**。

private sub userform_initialize()

dim ws as worksheet

for each ws in colmysheets

listbox1.additem ws.name

next ws

end sub

(3)示例工作簿使用了乙個窗體來測試集合,在開啟工作簿時會對工作簿進行初始化,新增新的選單,見[過程15]建立和使用集合變數.xls。

示例文件見uploadfiles/2006-6/627893209.rar

**********************************

程式16(工作表事件)示例文件見uploadfiles/2006-6/627966543.rar

**********************************

程式17(使用者窗體與工作簿)示例文件見uploadfiles/2006-6/627130154.rar

VBA程式集 第3輯

vba程式集 第3輯 程式11 查詢 程式功能 將數值轉換為文字 程式作用 搜尋選中的列,將數值轉變為文字。如果只選擇了乙個單元格,那麼 僅在活動單元格中操作。不能對公式單元格和空單元格操作。程式擴充套件 可以將程式 1和程式 2略加改動,將乙個字元附加到所菜單元格的開頭。如將cell.value ...

VBA語句集100句 第1輯

vba語句集100句 第1輯 我將學習vba過程中常用的語句進行了歸納,希望能對excel愛好者和vba初學者有所幫助.vba語句集 第1輯 定製模組行為 1 option explicit 強制對模組內所有變數進行宣告 單元格 單元格區域 32 activecell.currentregion.s...

第 3 章 共享程式集和強命名程式集

clr 支援兩種程式集 弱命名程式集 weakly named assembly,即無簽名的程式集 和 強命名程式集 strongly named assembly,即帶簽名的程式集 兩者程式集結構完全相同。兩者區別在於,強命名程式集使用發布者的公鑰 私鑰進行了簽名。這一對金鑰允許對程式集進行唯一性...