返回列表 上一主題 發帖

[轉貼] 如何分辨模組及全域變數呢?

[轉貼] 如何分辨模組及全域變數呢?

Q:
VBA有三種變數
區域、模組、全域變數共三種
小弟對於模組和全域變數分辨不清
不知要如何區分呢?

A:
宣告變數的基本語法如下,不知哪裡不懂?

Dim variable_name [As variable_type]
在模組層次�堨H Dim 所宣告的變數,該模組所有的程序皆可使用。
在程序層次宣告的變數,則只可在該程序中使用。

Private variable_name [As variable_type]
在模組層次中用來宣告私有變數,並配置儲存空間。
Private 變數只適用於宣告它們的模組中。

Public variable_name [As variable_type]
在模組層次中用來宣告公用變數,並配置儲存空間。
使用 Public 陳述式宣告的變數,可以在所有模組�堥洏� (除非使用 Option Private Module);但會使變數只在它們所在的專案�堿陘膝峈滿C
注意 Public 陳述式無法在物件類別模組�堳襲i固定長度的字串變數。


提醒您,懂得學以致用比較重要,不需拘泥在名詞上。

Q:
如果我要宣告一個全域變數,
一開機這個變數就存在,
那麼我要如何宣告呢?
以下是我的寫法,不知道對不對
Public s1 As Integer
'這是在ThisWorkBook中的程序
Private Sub Workbook_Open()
   s1 = Sheet1.Range("A65535").End(xlUp).Row
End Sub

A:
你是在物件類別模組ThisWorkbook宣告變數的,
Sheet1也是物件類別模組。
如果變數要在不同的模組之間傳遞/讀取,
請在一般模組宣告公用變數。

一般模組
Public Const mystr = "超人"
學海無涯_不恥下問

TOP

回復 6# basarasy


    Public Const i As Integer = 100
學海無涯_不恥下問

TOP

        靜思自在 : 要用心,不要操心、煩心。
返回列表 上一主題