第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

vba中如何調(diào)用公共函數(shù)?

vba中如何調(diào)用公共函數(shù)?

肥皂起泡泡 2019-02-05 20:06:44
假設(shè)我在一個(gè)模塊中建立了一個(gè)公共函數(shù)apublic function a(b as string)...end function在另一個(gè)模塊中的建立一個(gè)過程csub c()...end sub那如果我想從另一個(gè)模塊中的過程c調(diào)用這個(gè)公共函數(shù)a該怎么做呢?順便問一下,如果我想在函數(shù)中返回一個(gè)數(shù)組該怎么做呢?聽說call也可以??我自己又重新看了一下,我覺得很可能是參數(shù)的問題function a (b as range)...end function而在sub c()中我是這么做的:dim d as rangeset d=sheet1.range("a1:d1")call a(d)結(jié)果總是出錯(cuò)
查看完整描述

5 回答

?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊

函數(shù)定義了之后就可以類似 系統(tǒng)的函數(shù)拿來使用,
<變量>=函數(shù)名(參數(shù)列表)
函數(shù)如果不關(guān)心其返回值,可以用:函數(shù)名 參數(shù)列表【注意,不加小括號(hào)】的形式拿來用,此時(shí)函數(shù)的功能與過程類似了
【例:MsgBox "Hello World!"】

過程可以用Call調(diào)用 ,如:Call 過程名(參數(shù)列表),也可不加Call

=============================================
按照你的說明 ,寫了以下小例子,沒有出錯(cuò):

Private Function a(b As Range) As Integer
Range("D1") = "Run a"
a = 2
End Function

Sub c()
Dim d As Range
Set d = Sheet1.Range("a1:d1")
Call a(d)
End Sub

運(yùn)行后 “D1”中內(nèi)容已經(jīng)更改了!說明已經(jīng)能夠正確運(yùn)行了

你的出錯(cuò) 請(qǐng)給出出錯(cuò)信息!



查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
慕虎7371278

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊

假設(shè)我在一個(gè)模塊中建立了一個(gè)公共函數(shù)a
public function a(b as string)
...
end function

在另一個(gè)模塊中的建立一個(gè)過程c
sub c()
...
end sub
那如果我想從另一個(gè)模塊中的過程c調(diào)用這個(gè)公共函數(shù)a該怎么做呢?

順便問一下,如果我想在函數(shù)中返回一個(gè)數(shù)組該怎么做呢?
聽說call也可以??



查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
ibeautiful

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊

vba模塊中的公共函數(shù)是直接拿來可以用的就跟已經(jīng)在本模塊中一樣用法,用的時(shí)候就跟樓上說的一樣用 call a(b)

返回?cái)?shù)組我一般用兩個(gè)方法,
第一個(gè)方法是定義一個(gè)公用的數(shù)組,在哪個(gè)模塊都可以
如public b(10) as long
第二個(gè)方法是在過程中定義好數(shù)組,在調(diào)用函數(shù)的時(shí)候以參數(shù)的形式傳遞參數(shù)的地址。如
sub main()
dim b(10) as long
call trans(byref b) '這里必須在b之前寫上byref,表示傳達(dá)數(shù)組地址
'從這里開始就可以使用已經(jīng)被sub trans處理過的數(shù)組b(10)了
。。。。。。
end sub

sub trans(bb as long)
。。。。。。
end sub


查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
溫溫醬

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊

通過VBA調(diào)用函數(shù)并給函數(shù)指明參數(shù)的幾種調(diào)用方法:
①種調(diào)用方法
Worksheets(1).Range("E6") = WorksheetFunction.Median(Range("A1:B4"))
這種調(diào)用形式,函數(shù)的參數(shù)是單元格地址區(qū)域,屬于普通型,但數(shù)據(jù)區(qū)域的定義難于確定。
②種調(diào)用方法
Worksheets("sheet1").Range("D6") = Application.Min(Range("A1:B4"))
這種調(diào)用形式,函數(shù)參數(shù)的數(shù)據(jù)區(qū)域及工作表名稱,屬于普通型,靈活性不夠。
③種調(diào)用方法
Worksheets(1).Range("C6") = Application.Max(Worksheets("Sheet1").Range("A1:B4"))
此類調(diào)用方法,直接指明工作表名稱及數(shù)據(jù)范圍,但還是缺乏靈活性。
④種調(diào)用方法
Worksheets(1).Range(Cells(6, 2), Cells(6, 2)) = Application.WorksheetFunction.Average(Worksheets(1).Range(Cells(1, 1), Cells(4, 2)))
這種調(diào)用方法,是最標(biāo)準(zhǔn)、最靈活、最具有代表性、最完整、出錯(cuò)率最低的一種調(diào)用方法。
因?yàn)橐粋€(gè)工作薄包含多張工作表,只要在調(diào)用中,首先指明工作表名稱再給出數(shù)據(jù)范圍,這樣,就不會(huì)和其它工作表混淆,另外,對(duì)表的名稱和數(shù)據(jù)區(qū)域的引用,完全都是通過可構(gòu)造性的行列序號(hào)來標(biāo)記的,這種方法是相當(dāng)?shù)撵`活。
另外,調(diào)用函數(shù)的時(shí)候,也是逐漸引用。首先是Application引用,再次是WorksheetFunction引用,最后長到函數(shù)名稱,如:Application.WorksheetFunction.Average,這樣就可以保證邏輯性的完整,可以避免錯(cuò)誤的發(fā)生。
請(qǐng)注意VBA只能調(diào)用EXCEL絕大多數(shù)的函數(shù),而不是所有函數(shù)。



查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
慕慕森

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊

模塊一,兩個(gè)fun:
---------
Public Function aFun(n() As Long, m As Integer)
For i = LBound(n) To UBound(n)
n(i) = n(i) + 10
Next
m = m + 100
End Function

Public Function bFun(rng As Range)
On onerror GoTo 100
With rng
For i = 1 To .Rows.Count
For j = 1 To .Columns.Count
With .Cells(i, j)
If IsNumeric(.Value) And Not IsEmpty(.Value) Then .Value = .Value + 100
End With
Next j, i
End With
100:
End Function
------------
模塊二,兩個(gè)sub,調(diào)用上面的兩個(gè)fun:
---------
Public Sub a()
Dim iArr(1 To 3) As Long
Dim a As Integer
For i = 1 To 3
iArr(i) = i
Next
a = 5
Call aFun(iArr, a)
MsgBox iArr(3) & Chr(10) & a
End Sub

Public Sub b()
Dim iRng As Range: Set iRng = Range("a1:b5")
If iRng.Count <= 1 Then iRng.Value = iRng.Value + 100: GoTo 100
Call bFun(iRng)
100:
End Sub



查看完整回答
反對(duì) 回復(fù) 2019-03-18
  • 5 回答
  • 0 關(guān)注
  • 2557 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)