【发布时间】:2020-04-20 20:14:56
【问题描述】:
我有一个 Excel 电子表格,其中包含多个模块和多个子过程。一个模块有多个过程,另一个模块调用这些过程中的每一个。问题是 Call Subs 的列表会有所不同。我知道如何添加到下面的例程中,但是根据我在工作表的单元格中输入的内容,我无法弄清楚如何删除一行。该过程是在一个单元格中输入“Call TMS1707455”,然后运行一个宏,该宏将从下面的子单元中删除该单元格的值。
Sub TMS()
Call TMS1707455
Call TMS1367006
Call TMS4268798
Call TMS1366994
Call TMS39522
Call TMS39523
Call TMS4482313
Call TMS19395
Call TMS39415
Call TMS37118
End Sub
或者,在工作表列中输入此呼叫替补列表会更好或可能吗?然后,我可以根据需要修改列表,并拥有一个宏,该宏将根据 call subs 列调用所有过程。这样,我就不必有一个宏来添加行和一个宏来删除行。我只是找不到任何关于如何做这两种方式的信息。
【问题讨论】:
-
所有这些子程序都相似吗?看到类似 sn-p 的东西有点代码味道。第二种情况可以使用
Application.Run。 -
好像是XY问题。
-
我不知道您所说的
delete the value of that cell from the below sub是什么意思,但是您可以保留一个子程序并选择使用If或Case语句在其中运行任何程序。以If Range("A1").Value = TMS1707455 Then Call TMS1707455为例。 -
为了获得有关该问题的想法,我认为最好告诉我们您希望使用该范围的调用来实现什么。根据您完成某事的需要,我们也许可以提供一些想法...
-
@BigBen。子程序类似。下面是其中两个的示例。
Sub TMS1707455() Cells.Replace What:= _ "1707455(HSPD-12 Sponsor Certification Training)", _ Replacement:="HSPD-12 Sponsor Certification Training" End Sub Sub TMS1367006() Cells.Replace What: = _ "1367006(VA 员工远程办公培训模块)", _ Replacement:="VA 员工远程办公培训模块" End Sub 我将它们拆分,以便在不再需要时更容易删除它们。这些潜艇在一个模块中,然后另一个模块具有所有调用潜艇。