Es uzrakstīju šādu kodu:
Function find_results_idle()
Public iRaw As Integer
Public iColumn As Integer
iRaw = 1
iColumn = 1
Un es saņemu kļūdas ziņojumu:
" Nederīgs atribūts Sub vai funkcijā"
Vai jūs zināt, ko es darīju nepareizi?
Es mēģināju Public
vietā izmantot Global
, bet man radās tā pati problēma.
Es mēģināju deklarēt pašu funkciju kā Public
, bet arī tas neko nedeva.
Kas man jādara, lai izveidotu globālo mainīgo?
Šis ir jautājums par scope.
Ja vēlaties, lai mainīgie lielumi būtu spēkā tikai funkcijas darbības laikā, mainīgo lielumu deklarēšanai funkcijas vai apakšfunkcijas iekšienē izmantojiet Dim
(saīsinājums no Dimension):
Function AddSomeNumbers() As Integer
Dim intA As Integer
Dim intB As Integer
intA = 2
intB = 3
AddSomeNumbers = intA + intB
End Function
'intA and intB are no longer available since the function ended
globāls mainīgais (kā norādīja SLaks) tiek deklarēts ārpus funkcijas, izmantojot atslēgas vārdu Public
. Šis mainīgais būs pieejams visā lietojumprogrammas darbības laikā. Excel gadījumā tas nozīmē, ka mainīgie būs pieejami, kamēr būs atvērta konkrētā Excel darbgrāmata.
Public intA As Integer
Private intB As Integer
Function AddSomeNumbers() As Integer
intA = 2
intB = 3
AddSomeNumbers = intA + intB
End Function
'intA and intB are still both available. However, because intA is public, '
'it can also be referenced from code in other modules. Because intB is private,'
'it will be hidden from other modules.
Var būt arī mainīgie, kas ir pieejami tikai konkrētā moduļa (vai klases) ietvaros, deklarējot tos ar atslēgas vārdu Private
.
Ja veidojat lielu lietojumprogrammu un jūtat nepieciešamību izmantot globālos mainīgos, es ieteiktu izveidot atsevišķu moduli tikai globālajiem mainīgajiem. Tas palīdzēs jums saglabāt to uzskaiti vienuviet.