如何使同一组条件语句适用于vba中的所有子例程?

如何使同一组条件语句适用于vba中的所有子例程?,vba,excel,Vba,Excel,非常感谢那些回答我最初问题的人。我想更详细地谈谈我遇到的问题。我正在开发一个宏,它提供了我们生产的产品的4个不同生产阶段的可视化表示。电子表格设置为线性日历,显示一年中的所有365天,并将它们分组为日历周。每个生产阶段都有与之相关的不同颜色。这四个阶段是: 1) 组装:1天(黄色) 2) 初步分析:1天(紫色) 3) 深度分析:7天(绿色) 4) 装运:1天(红色) 在周末或节假日,设施内不开展任何工作。星期六和星期日由黑色单元格表示,假日由橙色单元格表示,并具有纵横交错的图案。宏旨在使用以下i

非常感谢那些回答我最初问题的人。我想更详细地谈谈我遇到的问题。我正在开发一个宏,它提供了我们生产的产品的4个不同生产阶段的可视化表示。电子表格设置为线性日历,显示一年中的所有365天,并将它们分组为日历周。每个生产阶段都有与之相关的不同颜色。这四个阶段是: 1) 组装:1天(黄色) 2) 初步分析:1天(紫色) 3) 深度分析:7天(绿色) 4) 装运:1天(红色)

在周末或节假日,设施内不开展任何工作。星期六和星期日由黑色单元格表示,假日由橙色单元格表示,并具有纵横交错的图案。宏旨在使用以下if-then语句跳过这些假日:

作为整数的Dim i

i=分析天数

对于i=1到7

ActiveCell。选择

如果Selection.Interior.Pattern=x1交叉且Selection.Interior.Color=橙色,则

ActiveCell.Offset(0,1)。选择

其他:ActiveCell。选择

如果结束

如果Selection.Interior.Color=黑色,则

ActiveCell.Offset(0,2)。选择

其他:ActiveCell。选择

结束如果

告诉宏跳过周六和周日的If-Then语句每次都有效。但是告诉宏跳过假期的语句只在部分时间有效,如果假期持续时间超过几天(圣诞假期持续九天),宏将插入贯穿整个假期的生产工作日。我发现,通过多次将上述语句直接复制和粘贴到另一语句下面,似乎可以解决这个问题。但我确信必须有一种更有效的方法来做到这一点。有人知道一种方法可以解决这个问题,而不必多次复制和粘贴相同的代码行吗


提前谢谢

如果您正在寻找一种进行测试并将结果全局存储在代码中的方法,那么您也可以在其他函数/子函数中访问先前测试的数据,请查看

如果您正在寻找一种压缩代码并编写以下内容的方法

b = check(a)
而不是

if a="xx" then
   b = "something"
else
   b = "something else"
end if

查看函数/子函数的说明

如果您正在寻找一种方法来进行测试并将结果全局存储在代码中,那么在其他函数/子函数中,您也可以访问先前测试过的数据

如果您正在寻找一种压缩代码并编写以下内容的方法

b = check(a)
而不是

if a="xx" then
   b = "something"
else
   b = "something else"
end if

查看函数/子函数的解释

您是否可以将if/Then设置为一个私有子函数,并在每个子函数中使用一行调用它?你知道我的意思吗?如果你的代码很好用,但是很难看或者效率不高,或者需要“另一双眼睛”,你会很高兴知道还有人在等着你去关注你的代码,并对它的任何方面提供有见地的反馈。你也可以复制/粘贴代码,我会用一个函数而不是subHi,谢谢你的快速回答。我为延迟回复道歉。我正在写一篇博文来添加新的信息和我发现的一个快速修复方法。你能把你的if/Then放到一个私人的Sub中,然后在每个Sub中用一行来调用它吗?你知道我的意思吗?如果你的代码很好用,但是很难看或者效率不高,或者需要“另一双眼睛”,你会很高兴知道还有人在等着你去关注你的代码,并对它的任何方面提供有见地的反馈。你也可以复制/粘贴代码,我会用一个函数而不是subHi,谢谢你的快速回答。我为延迟回复道歉。我正在写这篇文章,以添加新信息和我发现的一个快速修复方法。