0

在编码方面我很绿色,但有一些基本知识(至少是概念)。但是,我不熟悉使用 VBA,而且我需要的任务似乎有点复杂。我什至不确定这是否完全有可能完成。

基本上我有两张工作表,一张带有打开的“案例”,一张带有“关闭”的案例。已关闭的案例在特定列 (D) 中标有“x”值。我要做的是有一个宏,它将贯穿关闭的工作表并在 D 列中查找带有“x”的行。然后我想根据 A 列中的值从打开的工作表中选择行,即一个名称,将完全匹配。然后我想从打开的工作表中删除这些行。

所以这个概念是我想要一种方法来标记已关闭的案例,然后从未结案例的主列表中清除相应的条目。案例被拆分到不同的工作表中,但最后我有一个宏,将它们全部列出在主关闭表上。因此,找到带有“x”的已关闭案例,将名称与另一张纸上的名称匹配并删除该行。

这可行吗?如果可行,我该怎么做?

预先感谢您的任何帮助!

编辑:

我已经意识到,因为我已经创建了一个主“关闭”表,我什至不需要搜索“x”值。我需要做的就是将关闭的工作表中的名称与打开的工作表匹配,然后从打开的工作表中删除它们(它们就像它们所在的行一样)。

将继续寻找答案,因为这应该更简单。

4

1 回答 1

1

是的,这听起来确实可行。我建议尝试学习一些基本的 VBA,将问题分解成小块的工作,然后在将整个过程结合在一起之前尝试让所有这些工作。

因此,首先您需要了解如何遍历列中的所有值并根据条件测试它们,您可以使用此线程作为起点(vba 循环遍历列,如果某个值则递增)或谷歌它,看看你找到什么教程。

您需要决定如何存储符合条件的记录的数据(例如,构建一个数组或只是暂时将数据写入另一张表)。虽然写入另一张表可能效率不高,但您可以非常轻松地查看输出,这有助于调试,尤其是在您刚刚开始的时候。

然后,您将需要创建一个进一步的过程来打开另一个工作簿,循环浏览记录并测试它们是否在您的列表中,如果它们在则删除它们。

试一试每一步,然后问你在尝试时需要伴随的问题。

在开始使用 VBA 时,我发现另一个非常有用的技巧。如果您不确定执行某些操作的语法,一种方法是在录制宏时手动执行等效操作。然后,您可以查看 Excel 自动创建的宏背后的代码,有时您需要做的就是替换绝对单元格引用,例如

range("A1").value

具有相对引用(例如,相对于传入的参数或活动单元格或当前迭代通过循环表示的行等)。

希望这可以帮助您入门。

于 2013-07-25T17:03:14.263 回答