我正在创建一些我每天在工作中使用的表单,在excel中。在第一个表单上,我正在从外部数据库进行VBA查找,并且根据用户从下拉列表中选择的所选项,它会在包含VBA查找公式的单元格上填充所需信息。这一切都很有效,但在订购表单时我们需要做的一件事是,我们必须在另一个表单上跟踪这些购买。我也创建了第二个表单,它将订单表单中的所有信息填充到跟踪表单上的相应单元格中。我遇到的问题是,在订单表格的引用单元格中更改信息时,在跟踪表单上更改信息,将第一个订单信息替换为下一个订单信息。我一直在研究(无济于事)的是,即使订单表格被清除以输入另一个订单,如何在跟踪表上保留先前的订单信息。当插入第二订单信息而不是删除跟踪表上的先前订单信息时,我希望在订单上插入信息以便第二订单在其相应的单元格引用中的下一个可用列上开始。
这是一个问题,另一个是这个问题。订单跟踪表单具有一定数量的列,这些列可以在到达表单底部之前放入。我如何让它开始另一个跟踪表单并继续跟踪其第一个可用列的订单,再次到达底部时再次启动另一个表单?
我知道这是很多信息,我希望我能够很好地解释它,让你理解。我最近被带到了宏的使用,但是当涉及到这些时我仍然是NOOB。如果使用宏是最有效的方式来做我需要的东西并且必须使用一两个或三个来完成这个任务,你能为我提供所需的编码吗?再次感谢你。
V/R
物流师,喜欢它
答案 0 :(得分:0)
您需要确保将值从动态工作表复制到跟踪表。如果您复制公式,它也将是动态的。
例如,假设您有以下电子表格:
A B C D
+--------+--------+--------+--------+
1 | 42 | =$a$1 | | |
+--------+--------+--------+--------+
和以下代码:
Sub Macro1()
Range("a1").Value = 42 ' ensure source data as expected'
Range("c1").Value = Range("b1").Value ' copy value '
Range("b1").Copy ' copy formula '
Range("d1").PasteSpecial
Range("a1").Value = 0 ' change source data '
End Sub
当您运行该代码时,c1
会获得a1
的当前值42,但是,d1
会从b1
获取当前公式对a1
的相对引用,最终得到:
A B C D
+--------+--------+--------+--------+
1 | 0 | =$a$1 | 42 | =$a$1 |
+--------+--------+--------+--------+
或c1
是保存历史记录的唯一单元格(因为b1
和d1
都是公式化引用,它们将反映对原始数据源所做的更改)。