基本上我需要有一些表来销售特定类别,例如电脑和笔记本电脑我还需要一个显示所有销售的主表。
对于输入我使用输入框和下拉菜单选择哪个类别(个人电脑或笔记本电脑),然后将此输入与销售信息一起放入一个大表中。我只是想知道将这些数据放入单独的工作表中的最佳方法是什么?我有点松散的结局从哪里开始。我想过可能在VB中使用IF语句,如果输入是例如PC然后也插入到工作表PC中,但这似乎是一种非常低效的方式。
非常感谢您的想法。
答案 0 :(得分:0)
如果您不确定将VB代码放在何处,最好将代码添加到其中一个工作表后面,而是添加到单独的模块中。另一方面,您需要一个在特定事件中调用的代码的入口点。这可能是工作表事件(例如,更改事件),或者只是用户在希望更新主表时必须激活的按钮或菜单。从那里调用你的模块代码。
如果你能提供一个具体的例子,我们可能会给你一个更好的答案。
使用工作表更改事件:在每个输入表单中添加如下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
UpdateMainSheet(ActiveSheet)
' or UpdateMainSheet(Target)
End Sub
UpdateMainSheet
应该是一个单独模块中的公共Sub,它将输入数据从给定工作表复制到主工作表(还应删除主工作表中已在给定工作表上删除的数据)。 / p>
答案 1 :(得分:0)
将2张相同的记录保存在“必须”中吗?
如果只是一次只能看到PC或笔记本电脑,您可以随时使用过滤器。
如果用户在输入后更新记录,如果用户不是在主表单中,而是在Clone_Laptop表单中进行编辑,该怎么办?这将带来各种混淆,除非你更新两种方式,即
对于任何工作表中的每次更改(Master,Clone_PC,Clone_Laptop),您必须将整个记录复制到另一个工作表以保持工作表同步,这意味着您必须
因为这样的例程 - 如果写得正确 - 可以双向操作,你肯定会将它放在一个单独的模块中,并从每个工作表中的Worksheet_Change()
事件过程调用它,传递源行的参数({{ 1}})和目标表。
提示:注意正确抽象问题。说 - 如果您创建一个包含类别列表以及工作表名称的额外表格,您可以自由地确定哪个类别应该转到哪个工作表,您可以将2个或更多个类别提供给同一个工作表,等等。验证主表中类别的良好列表。最后,对于稍后可能为新类别创建的每个新工作表,将添加一行代码(调用Sync例程并将“MasterSheet”作为目标参数)