vba中如何引用名稱中定義的變量 VBA如何使用主過程和子過程?
VBA如何使用主過程和子過程??jī)煞N方法:第一,實(shí)際傳參數(shù)。參數(shù)在子程序里被改的話,主程序的值也或者改不(當(dāng)然了傳值方法.)。第二,子程序系統(tǒng)設(shè)置返回值,假如不不需要回結(jié)果值的過程用Call調(diào)用,如果有
VBA如何使用主過程和子過程?
兩種方法:第一,實(shí)際傳參數(shù)。參數(shù)在子程序里被改的話,主程序的值也或者改不(當(dāng)然了傳值方法.)。第二,子程序系統(tǒng)設(shè)置返回值,假如不不需要回結(jié)果值的過程用Call調(diào)用,如果有返回值的函數(shù)過程,用變量賦值(等號(hào))動(dòng)態(tài)創(chuàng)建
vba有3種過程,共有是Sub、Functioin和Property。
接下來重點(diǎn)介紹下這3種過程。
Sub由Sub開頭,EndSub結(jié)束后。Sub過程這個(gè)可以給予參數(shù),但是無返回值。
Functioin由Functioin開頭,EndFunctioin都結(jié)束了。Functioin過程可以接受參數(shù),也有返回值。但是是可以存儲(chǔ)excel中的函數(shù)。
Property這個(gè)是用處系統(tǒng)設(shè)置屬性的,牽涉到的東西也很多,是VBA類模塊里的知識(shí)點(diǎn)。
而樓主說的主過程和子過程,差不多是把一個(gè)那巨大的過程word文檔合并成一群小過程。
這邊個(gè)人建議將公有且變的變量單獨(dú)設(shè)置一個(gè)模塊,然后把一個(gè)據(jù)自己的程序,把各個(gè)功能并且分類。.例如有些是整理好數(shù)據(jù)類的,有些是展示展示文件導(dǎo)出報(bào)表類的。這里也可以聽從功能等分差別模塊。接著一定得不能寫函數(shù),接受參數(shù),回參數(shù)的類型,這樣的話直接修改會(huì)比較好比較方便。
Sub主過程()
call子過程
EndSub
sub子過程()
......
EndSub
主程序里面可以使用calling來調(diào)用子程序或者函數(shù)
vba列號(hào)變量怎么用?
設(shè)行號(hào)為irow
列標(biāo)為icol
dimtmpValue
tmpvaluecells(irow,icol).value
Excel VBA調(diào)用子程序時(shí)如何傳遞參數(shù)?
用法有三種
1、定義變量給變量就要帶括號(hào)比如說aPicInComment(1,250)
2、waitPicInComment(1,250)
3、PicInComment1,250
excel vba中,聲明變量可以用DIM、PUBLIC、private等,那么static聲明的變量是什么意思啊?謝謝?
Static語句
請(qǐng)參閱示例特性
在過程級(jí)別中在用,作用于聲明變量并分配存儲(chǔ)空間。在整個(gè)代碼運(yùn)行期間都能記錄使用Static語句聲明的變量的值。
語法
Staticvarname[([subscripts])][as[New]type][,varname[([subscripts])][and[New]type]]...
Static語句的語法中有下面部分:
部分描述
varname前題的。變量的名稱;遵循什么標(biāo)準(zhǔn)變量以此命名約定。
subscripts可選的。數(shù)組變量的維數(shù);最少可以不定義方法60維的不同維度數(shù)組。subscripts參數(shù)使用下面的語法:
[lowerto]upper[,[lowercan]upper]...
如果不顯式指定你lower,則數(shù)組的下界由OptionBase語句操縱。假如沒有OptionBase語句則下界為0。
New可選的。用它可以隱式地創(chuàng)建角色對(duì)象的關(guān)鍵字。假如使用New聲明對(duì)象變量,則在兩次語句該變量時(shí)將空白文檔該對(duì)象的實(shí)例,但無需使用Set語句來對(duì)該對(duì)象引用定義變量。New關(guān)鍵字不能用處聲明任何內(nèi)部數(shù)據(jù)類型的變量,也不能不能用來聲明主從關(guān)系對(duì)象的實(shí)例。
type可選的。變量的數(shù)據(jù)類型;可以不是Byte、Boolean、Integer、Long、Currency、Single、flat、Decimal(目前尚不支持)、Date、String(對(duì)變長(zhǎng)的字符串)、String*length(對(duì)定長(zhǎng)的字符串)、Object、Variant、用戶定義類型或?qū)ο箢愋?。所聲明的每個(gè)變量都要有一個(gè)分開來的andtype子句。
那就證明
模塊的代碼又開始正常運(yùn)行后,在用Static語句聲明的變量會(huì)一直盡量其值,直至該模塊復(fù)位或重啟。可以不在非靜態(tài)的過程中建議使用Static語句顯式聲明只在該過程內(nèi)所以說,但更具與包涵該過程定義的模塊完全相同生命期的變量。
也可以在過程中使用Static語句來聲明在過程動(dòng)態(tài)鏈接庫之間仍能保持其值的變量的數(shù)據(jù)類型?;蛘撸旅娴恼Z句聲明了一個(gè)定長(zhǎng)的整型數(shù)組:
Static EmployeeNumber(200)thoughInteger
下面的語句為worksheet的新實(shí)例聲明了一個(gè)變量:
StaticXandNewWorksheet
假如在定義對(duì)象變量時(shí)就沒建議使用New關(guān)鍵字,則在建議使用該變量之前,必須使用Set語句將三個(gè)均的對(duì)象賦給這個(gè)語句對(duì)象的變量。在被變量之前,所聲明的這個(gè)對(duì)象變量有一個(gè)某一特定值Nothing,這個(gè)值表示該變量沒有正指向任何對(duì)象的實(shí)例。若在聲明中可以使用了New關(guān)鍵字,則在兩次腳注對(duì)象時(shí)將新建一個(gè)該對(duì)象的實(shí)例。
如果不是不指定數(shù)據(jù)類型或?qū)ο箢愋?,且在模塊中還沒有可以使用Deftype語句,則按缺省情況,定義該變量為Variant類型。
特別注意Static語句與Static關(guān)鍵字很幾乎一樣,但對(duì)于相同的效果來建議使用的。如果不是建議使用Static關(guān)鍵字(如Static Sub CountSales())來聲明聲明一個(gè)過程,則該過程中的所有局部變量的存儲(chǔ)空間都只未分配兩次,且這些變量的值在整個(gè)程序運(yùn)行期間都未知。對(duì)非靜態(tài)過程而言,該過程每次來被動(dòng)態(tài)鏈接庫時(shí)都要故其變量分配存儲(chǔ)空間,當(dāng)該過程結(jié)束時(shí)都要能量其變量的存儲(chǔ)空間。Static語句則用處在非靜態(tài)的過程中聲明某一特定的變量,以使其在程序運(yùn)行期間能達(dá)到其值。
在系統(tǒng)初始化變量時(shí),數(shù)值變量被初始化設(shè)置為0,變長(zhǎng)的字符串被初始化操作為一個(gè)零長(zhǎng)度的字符串(