[VBA ] Function傳回值的問題

看板Visual_Basic作者 (萬物靜觀皆自得)時間11年前 (2013/12/17 23:38), 編輯推噓1(2114)
留言17則, 4人參與, 最新討論串1/2 (看更多)
將主程式的值帶到Function中的MySht、MyBase後, 希望Function計算出來的RC1、RC2、CC1、CC2能讓主程式應用。 而我這個寫法無法將Function的值讓主程式使用, 請問程式碼有那邊需要修改呢?謝謝!! 程式碼如下: Sub 主程式() Dim RC1 as Integer, RC2 as Integer, CC1 as Integer, CC2 as Integer Call 範圍計算("資料表", "AG") Range("A" & RC1 & ":O" & RC2).Copy <-希望用Function的RC1、RC2的值 ...... Range("Z" & CC1 & ":AD" & CC2).Copy ...... End Sub Function 範圍計算(ByRef Mysht As String, MyBase As String) as Integer Dim RC1 as Integer, RC2 as Integer, CC1 as Integer, CC2 as Integer Sheets(Mysht).Select RC1 = Range(MyBase & ActiveSheet.Rows.Count).End(xlUp).Row RC2 = xxxxx CC1 = xxxxx CC2 = xxxxx End Function -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.25.71.66

12/17 23:40, , 1F
byref... 而且變數都沒宣告,預設變數只會存在於所屬的
12/17 23:40, 1F

12/17 23:40, , 2F
function 中
12/17 23:40, 2F
我剛再主程式加上Dim了,Function中也加上ByRef, 可是還是沒辦法將Function的那四個變數傳回主程式,請問那邊有漏掉的嗎? 剛嘗試寫VBA,有些地方還不太瞭解,還麻煩各位指教,感謝! ※ 編輯: Fmajor 來自: 114.25.71.66 (12/18 00:06)

12/18 06:26, , 3F
copy 中文意思為複製,沒有回傳的含義。
12/18 06:26, 3F
不好意思,我再重新敘述一下問題。 ※ 編輯: Fmajor 來自: 114.25.64.101 (12/18 22:56)

12/18 23:26, , 4F
不要養成壞習慣,在function 內不要用全域變數,要用retu
12/18 23:26, 4F

12/18 23:26, , 5F
rn回傳。
12/18 23:26, 5F

12/18 23:26, , 6F
function 與sub 是不同的意思
12/18 23:26, 6F

12/18 23:28, , 7F
function 的變數生命期盡量在function結束後也跟著消失
12/18 23:28, 7F

12/18 23:28, , 8F
12/18 23:28, 8F
請問是這樣修改嗎? Function那四個值的程式碼要怎麼寫,才能要如何return到主程式呢? ※ 編輯: Fmajor 來自: 114.25.64.101 (12/19 00:00)

12/19 10:36, , 9F
在function的cc2=XXXXX下加上 return RC1,RC2,CC1,CC2
12/19 10:36, 9F

12/19 10:39, , 10F
Call 範圍計算("資料表", "AG")改
12/19 10:39, 10F

12/19 10:40, , 11F
dim aa as string=範圍計算("資料表", "AG")
12/19 10:40, 11F

12/19 10:40, , 12F
再將aa的值用","分隔出來給定義的變數
12/19 10:40, 12F

12/19 10:54, , 13F
VBA的return這樣用?你們各位會不會太誇張了?
12/19 10:54, 13F

12/19 10:55, , 14F
一次return四個還用","來split?你這那一家的VBA?
12/19 10:55, 14F

12/19 10:55, , 15F
亂教一氣。
12/19 10:55, 15F

12/19 11:11, , 16F
只不過提供一種方式,這麼行就請你教一下,呵呵
12/19 11:11, 16F

12/19 11:13, , 17F
你要把他用成陣列再回傳也是同樣的道理
12/19 11:13, 17F
文章代碼(AID): #1Ii707nm (Visual_Basic)
文章代碼(AID): #1Ii707nm (Visual_Basic)