看板 Visual_Basic 關於我們 聯絡資訊
將主程式的值帶到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
fumizuki:byref... 而且變數都沒宣告,預設變數只會存在於所屬的 12/17 23:40
fumizuki:function 中 12/17 23:40
我剛再主程式加上Dim了,Function中也加上ByRef, 可是還是沒辦法將Function的那四個變數傳回主程式,請問那邊有漏掉的嗎? 剛嘗試寫VBA,有些地方還不太瞭解,還麻煩各位指教,感謝! ※ 編輯: Fmajor 來自: 114.25.71.66 (12/18 00:06)
johnpage:copy 中文意思為複製,沒有回傳的含義。 12/18 06:26
不好意思,我再重新敘述一下問題。 ※ 編輯: Fmajor 來自: 114.25.64.101 (12/18 22:56)
johnpage:不要養成壞習慣,在function 內不要用全域變數,要用retu 12/18 23:26
johnpage:rn回傳。 12/18 23:26
johnpage:function 與sub 是不同的意思 12/18 23:26
johnpage:function 的變數生命期盡量在function結束後也跟著消失 12/18 23:28
johnpage:。 12/18 23:28
請問是這樣修改嗎? Function那四個值的程式碼要怎麼寫,才能要如何return到主程式呢? ※ 編輯: Fmajor 來自: 114.25.64.101 (12/19 00:00)
cf1064:在function的cc2=XXXXX下加上 return RC1,RC2,CC1,CC2 12/19 10:36
cf1064:Call 範圍計算("資料表", "AG")改 12/19 10:39
cf1064:dim aa as string=範圍計算("資料表", "AG") 12/19 10:40
cf1064:再將aa的值用","分隔出來給定義的變數 12/19 10:40
MOONRAKER:VBA的return這樣用?你們各位會不會太誇張了? 12/19 10:54
MOONRAKER:一次return四個還用","來split?你這那一家的VBA? 12/19 10:55
MOONRAKER:亂教一氣。 12/19 10:55
cf1064:只不過提供一種方式,這麼行就請你教一下,呵呵 12/19 11:11
cf1064:你要把他用成陣列再回傳也是同樣的道理 12/19 11:13