看板 Office 關於我們 聯絡資訊
軟體:Excel 版本:2013 各位版上的大大下午好,有一個自訂義Function的位置擺放問題請教。 目前我有兩個Worksheet,如果我有一個自訂義的Function是兩個Worksheet都會用到的。 那麼我應該放在哪裡比較好呢~? 煩請撥冗解惑,感謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.116.8 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1536571498.A.285.html
soyoso: 放在模組 09/10 17:32
soyoso: 但如果指的共同是兩個worksheet於不同的活頁簿來引用的話 09/10 17:45
soyoso: 則以excel增益集方式掛載後引用 09/10 17:47
newacc: 簡單點的把Function前綴放上Public就可以了 09/10 18:11
newacc: 然後呼叫方式為Worksheets(__).XXXX 09/10 18:15
newacc: 所以要放在哪裡這個問題應該要再反問給你,你打算怎麼管理 09/10 18:15
newacc: 你的code? 09/10 18:16
感謝兩位大大的指導 @Soyoso 這個function會傳回值,如果放在Sub裡面,能夠給不一樣的Sub使用嗎? 假設情境如下 模組內容 public sub test() Function FindAndSorting() end sub 以下是主程式呼叫 Private Sub Worksheet_SelectionChange(ByVal Target As Range) public sub test() active.range("A1:C3")=FindAndSorting end sub @newacc 這確實是一個好問題,因為我現在這個專案比較簡單,大致上的功能是這樣。 我有兩個Workbook 分別是Workbook A跟Workbook B Workbook A有兩個頁面,一個用於輸入,一個用於查詢。 這兩個頁面跟Workbook B相互作用,可以把Workbook B當成是Database Workbook A跟B分別各有三個按鈕,儲存、清除、調閱資料等功能。 目前只有清除功能在兩個工作表的作用是一模一樣的。 所以,我都直接在Worksheet上建立按鈕,然後對按鈕案右鍵檢視程式碼。 進行程式碼的編寫。所以我並沒有用Module來管理我的Code。 所以我的workbookA結構是長這樣 workbookA worksheet1 worksheet2 private sub button1() private sub button1() [code] [code] end sub end sub private sub button2() private sub button2() [code] [code] sub test end sub [code] end sub private sub test() [code] '此sub沒有傳回值 end sub private sub button3() private sub button3() [code] [code] end sub end sub 仔細一想,這似乎不是一個好的管理方法。我可能會花時間改寫。 如果大大願意指導,是否建議用什麼方法管理比較好。 如果基礎於這樣的情況下,我需要一個Function可以被兩個worksheet各自呼叫。 或著說,被兩個Sheet的Button 2呼叫,而該Funtion有回傳值到一個變數而非儲存格。 以我對sub的了解應該是不會有傳回值的。 所以我才會有此一問。 以上,感謝兩位大大的回應與指導。 ※ 編輯: yimean (123.195.98.141), 09/10/2018 20:25:11
yimean: 更新資料 09/10 20:27
soyoso: 模組sub程序如要回傳值的話,可在sub外設個public 變數來 09/10 20:56
soyoso: 接收 09/10 20:56
soyoso: 主程式執行要接function的話,在模組內以function..end 09/10 20:58
soyoso: function,其中要將回傳值寫入自訂function名稱內 09/10 20:59
soyoso: 主程式內就以range = findandsorting來接收 09/10 21:00
soyoso: https://i.imgur.com/PdLoIsh.jpg 類似這樣 09/10 21:02
soyoso: 模擬的動作皆為回傳e1:g3儲存格,再以function或sub回傳 09/10 21:03
soyoso: 其他實際動作或要傳值到function或sub內的話,再自行調整 09/10 21:05
yimean: 這也是一個不錯的想法,感謝您的分享。 09/10 23:44