作者yimean (温柔杀手)
看板Office
标题[算表] 共用Function放置位置问题
时间Mon Sep 10 17:24:55 2018
软体:Excel
版本:2013
各位版上的大大下午好,有一个自订义Function的位置摆放问题请教。
目前我有两个Worksheet,如果我有一个自订义的Function是两个Worksheet都会用到的。
那麽我应该放在哪里比较好呢~?
烦请拨冗解惑,感谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.33.116.8
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1536571498.A.285.html
1F:→ soyoso: 放在模组 09/10 17:32
2F:→ soyoso: 但如果指的共同是两个worksheet於不同的活页簿来引用的话 09/10 17:45
3F:→ soyoso: 则以excel增益集方式挂载後引用 09/10 17:47
4F:→ newacc: 简单点的把Function前缀放上Public就可以了 09/10 18:11
5F:→ newacc: 然後呼叫方式为Worksheets(__).XXXX 09/10 18:15
6F:→ newacc: 所以要放在哪里这个问题应该要再反问给你,你打算怎麽管理 09/10 18:15
7F:→ 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
8F:→ yimean: 更新资料 09/10 20:27
9F:→ soyoso: 模组sub程序如要回传值的话,可在sub外设个public 变数来 09/10 20:56
10F:→ soyoso: 接收 09/10 20:56
11F:→ soyoso: 主程式执行要接function的话,在模组内以function..end 09/10 20:58
12F:→ soyoso: function,其中要将回传值写入自订function名称内 09/10 20:59
13F:→ soyoso: 主程式内就以range = findandsorting来接收 09/10 21:00
15F:→ soyoso: 模拟的动作皆为回传e1:g3储存格,再以function或sub回传 09/10 21:03
16F:→ soyoso: 其他实际动作或要传值到function或sub内的话,再自行调整 09/10 21:05
17F:→ yimean: 这也是一个不错的想法,感谢您的分享。 09/10 23:44