在编码时我非常环保,但有一些基本知识(至少是概念)。但是,我不熟悉使用VBA,我需要的任务似乎有点复杂。我甚至不确定是否完全有可能完成。
基本上我有两个工作表,一个是开放的“案例”,另一个是“封闭”的案例。封闭案例在特定列(D)中标记为“x”值。我要做的是有一个宏将贯穿封闭的工作表,并在列D中找到带有“x”的行。然后,我想根据A列中的值从开放工作表中选择行,这是一个名字,将完全匹配。然后我想从打开的工作表中删除这些行。
因此,我想要一种方法来标记已关闭的案例,然后从打开案例的主列表中清除相应的条目。案例被分成不同的工作表,但最后我有一个宏,它在主要的封闭表上列出它们。因此,找到带有“x”的封闭案例,将名称与另一张纸上的名称相匹配,然后删除该行。
这是否可行,如果可行,我该如何解决?
提前感谢您的帮助!
编辑:
我已经意识到,因为我已经创建了一个主“封闭”表,我甚至不需要搜索“x”值。我需要做的就是将封闭表中的名称与打开的表格匹配,然后从打开的表格中删除它们(就像它们所包含的行一样)。
继续寻找答案,因为这应该更简单。
答案 0 :(得分:1)
是的,这听起来可行。我建议尝试学习一些基本的VBA,将问题分解成小部分工作,然后在加入整个过程之前尝试完成所有这些工作。
首先,您需要了解如何遍历列中的所有值并根据条件对其进行测试,您可以将此线程用作起点(vba loop through column and if certain value then increment)或Google it并看看你找到的教程。
您需要决定如何存储有关合格记录的数据(例如,构建数组或暂时将数据写入另一张表)。虽然写入另一个工作表可能效率不高,但您可以非常轻松地查看输出,这有助于调试,尤其是在您刚刚开始使用时。
然后,您需要创建另一个过程来打开其他工作簿,遍历记录并测试它们是否在您的列表中并删除它们。
在每个步骤中进行操作,然后询问您在尝试时所需的问题。
在开始使用VBA时,我发现了另一个提示非常有用。如果您不确定要做某事的语法,找到这个的方法是在录制宏时手动执行等效操作。然后,您可以查看Excel自动创建的宏背后的代码,有时您需要做的就是替换绝对单元格引用,例如
range("A1").value
带有相对引用(例如,相对于传入的参数或活动单元格或当前迭代通过循环表示的行等)。
希望这有助于您开始使用。