Excel VBA使用者窗體怎麼呼叫模組裡的變數?

2023-05-09 10:25:03 字數 3442 閱讀 9681

1樓:網友

雖然過程f()是用public定義的,但是static a, b的作用域只是在f()這個sub中,其他過程是無法訪問到的。

如果確實需要的話你可以將a,b的宣告用public放在通用:

public a,b

public sub f()

a = 3b = 4

end sub

或者你可以將宣告放在窗體中。

而變數的初始化可以放在窗體的load事件中。

private a,b

private sub form1_load()a=3b=4

end sub

vba excel中怎麼引用其他模組或者form中的的變數???

2樓:匿名使用者

在模組的最頂上,用 public 宣告,然後在所有的模組、窗體、sheet中都可以直接使用。

例如下面的3個模組使用的是同乙個變數astr,在任何乙個模組的sub、function中都可以改變 astr 的值,所以無論點選sheet中的按鈕,還是form中的按鈕,都會使 astr 的字串不斷加長。模組1:

乙個公共變數。

public astr

form1的**:

private sub commandbutton1_click()astr=astr & abcd"

msgbox astr

end sub

sheet1的 按鈕1 的**:

private sub commandbutton1_click()astr=astr & abcd"

msgbox astr

end sub

3樓:網友

不需要,只要在同乙個excel中的module檔案,其中變數可以相當於同一檔案的變數的訪問。

4樓:匿名使用者

對,就那樣引用就可以了,模組名。變數名。

excel vba 窗體引用模組中的變數失敗原因

5樓:自我程式設計

可以呼叫,如果public c 和函式放在乙個sheet,那麼直接呼叫時c=0

但是放在不同sheet時,c沒有初值,如果你在呼叫前賦值 比如 c=0,你就會看見它了。

vba excel窗體呼叫模組的變數,是不是在模組中定義變數用publice就可以了,static是什麼呢

6樓:匿名使用者

模組變數是在模組內的過程外定義的變數,用dim private public都可以,不過用public定義的是全域性變數,是在其它模組也起作用的變數,也就是說在其它模組也可以引用該變數。而static定義的是靜態變數,一般的過程內變數在過程結束後即不存在了,而用static定義的則在過程結束後仍然儲存在記憶體中,並保留其原有值。

7樓:網友

模組變數在「通用」內定義,用dim private public都可以。static定義的是乙個靜態變數,在程式執行的整個過程都存在,但只在定義的模組中有效。而模組變數在每個模組中有效。

vba如何在乙個模組中引用另乙個模組的函式

8樓:網友

1、按alt+f11調出excel中vba介面。

2、右鍵插入乙個模組。

5、接下來,用同樣方法寫完求平均數公式。

6、同樣,執行後,可以看到,不均數也填寫完成了。

7、這樣填寫的是公式,仔細觀察,會發現相當於我們自動輸入了公式,而不是計算後的值。

9樓:職場戴老師

1. 什麼是dll檔案。

dll是dynamic link library 的縮寫形式,dll是乙個包含可由多個程式同時使用的**和資料的庫。

dll不是可執行檔案。動態鏈結提供了一種方法,使程序可以呼叫不屬於其可執行**的函式。函式的可執行**位於乙個 dll 中,該 dll 包含乙個或多個已被編譯、鏈結並與使用它們的程序分開儲存的函式。

dll 還有助於共享資料和資源。多個應用程式可同時訪問記憶體中單個dll 副本的內容。dll 是乙個包含可由多個程式同時使用的**和資料的庫。

2. dll在vba中有什麼作用?

把核心**封裝在dll裡,使用者無法檢視到dll檔案中的**,有利於保護自已的**。

可以放在dll檔案中被大家共享。

3. 怎麼把vba**封裝到dll檔案中呢?

常用的方法是使用進行封裝,所以大家要想學習本集封裝,需要先安裝程式。具本的封裝步驟詳見下面的dll封裝示例模組。

4. 怎麼在vba中呼叫這些**呢?

封裝的**是以類的形式存在,所以呼叫前需要先載入dll檔案,然後在模組中象呼叫類模組一樣呼叫dll中的函式,詳見下面的"dll**的呼叫"模組內容。

二、dll封裝。

在模組中編寫試調正確。

例:寫乙個求矩形面積的vba自定義函式。

function 面積(長 as double, 寬 as double)

面積 = 長 * 寬。

end function

2. 開啟vb程式,在"新建工程'視窗中點"activex dll"圖示。

10樓:匿名使用者

我試了,在同乙個檔案中,只要另乙個模組中的函式前不要加 private 之類的限制詞,就可以直接呼叫,或者前面加模組名再加函式名來呼叫。比如(我用的call方式呼叫,其他方式應該也行的吧):

call 模組或者call dealmerge(activecell)模組2中的過程是這樣的:

function dealmerge(target as range)

dim tmprange as rangeset tmprange = cells(,1).mergearea

end function

goodluck!

如何用excel中命令按鈕呼叫vba中使用者視窗??

11樓:魚木混豬喲

詳細操作步驟如下:

2.關閉vba,返回工作表,在「開發工具」中點選插入,選擇第乙個命令按鈕。

3.插入之後,會自動彈出巨集介面,此次能看到剛才寫好的巨集名字,選中,並確定。

4.點選按鈕,就看到彈出userform1來了。

12樓:表裡如一

開啟excel,插入乙個按鈕,雙擊按鈕進入vbe後輸入如下**:

即可達到你的要求。

如何用excel中命令按鈕呼叫vba中使用者視窗??

關於excel vba中全域性變數呼叫的問題 15

13樓:姓王的

如果能把全部**貼上出來就好分析了。最大的可能性是你按鈕2的過程中又重新定義了乙個變數a,與全域性變數重名,那麼這個過程就無法引用全域性變數。

EXCEL VBA如何窗體控制項的值?

cells 1,2 x x是你想要賦的值。1,表示row 2,表示column cells 1,2 表示b1位置。使用組合框的屬性就可以了,不用寫vba 假設sheet1,只有乙個窗體combobox dim rcombo as range set rcombo range msgbox rcomb...

求C窗體登入需要連線Access檢驗使用者名稱和密碼是否正確的

你這frm2幹啥用的,乙個按鈕顯示乙個按鈕隱藏,啥也沒做 vs2008中窗體設計登陸介面,連線資料庫,判斷使用者輸入的賬號密碼,正確跳轉到使用者介面 不在c 裡面用if的話,就得通過資料庫判斷了,前提是這個使用者名稱和密碼都在這個資料庫裡面,通過資料庫sql去判斷好了,不過還需要用到if,只是這個i...

C的windows窗體中怎麼實現窗體的動態變化

this.size new system.drawing.size 368,344 這個視窗的大小根據自己的情況設定 c 在 windows 窗體 怎麼實現 新增乙個動態的時間 就是時間是跳動的 等 在窗體內放置乙個timer控制項,每隔零點幾秒觸發一次,在它的事件裡這行 放在paint事件裡面 p...