Excel的VBA – 如果更深入的select案例不符合标准,避免再次input代码

我想知道是否有一个解决方法,不要重新input代码,如果更深入的select案件不符合条件。

我必须检查月份是否是下面所列的月份之一,如果是我必须检查当月的date是否符合标准。 如果当天不匹配任何情况,则必须运行的代码是在上述ELSE情况下的Select语句中设置的代码。

我知道解决这个问题的唯一方法是通过使用IF语句而不是嵌套的select case,并使用GO TO LABEL将我带回CASE ELSE语句,但看起来非常不经典。

有没有办法不重新input相同的代码在其他情况下,如果更深的select案例不符合条件?

Select Case Month(Range("b" & Start)) Case 1 Case 4 Case 5 Case 6 Case 8 GiornoMese = listaattiva(j).Text & "/" & Month(Range("b" & Start)) & "/" & Year(Range("b" & Start)) Select Case Day(GiornoMese) Case 15 **HERE IF THE DAY IS NOT THE 15th CODE SHOULD JUMP OUT AND RUN CODE TYPED IN THE CASE ELSE STATEMENT** Case 12 Case Else 'Debug.Print listaattiva(j).Text & "/" & 'Month (Range("b" & Start)) & "/" & Year(Range("b" & Start)) GiornoMese = listaattiva(j).Text & "/" & Month(Range("b" & Start)) & "/" & Year(Range("b" & Start)) If Weekday(GiornoMese, vbMonday) = 7 Then 'Domenica - Tutte le ore del giorno sono F3 For Each quarto In listaattiva(j).Attributes 'Debug.Print listaattiva(j).Attributes.Length 'Debug.Print quarto.Text F3 = F3 + quarto.Text 'Debug.Print F3 Next 

@MarcinSzaleniec这会让我重新键入我已经在CASE ELSE语句中陈述的代码(或ctrl-v粘贴)。

我需要检查XML文件中列出的数据是否属于公共假期。 为此,我首先检查一个月,然后是一天。

如果这不是一个实际的公共假期月份,我只是在ELSE STATEMENT中使用标准代码,如果它是一个月和一个假日,我写了不同的代码,但如果它是一个月,而不是一个假日,我会运行已经说明的代码ELSE语句。

矿是更“美”的问题,我想保持代码在一个垂直的工作stream程相同的SUB,不必使其他潜艇上的PPL跳。

在“其他情况”一节中将代码与“代码”分开。 你可以传递必要的variables作为参数。 尝试像这样:

 Sub DoIfElse (_Year as Integer, _Month as Integer) (...) end Sub 

很难破译哪些variables是真正需要的,因为你只发布了代码片段,但是我想你知道你需要什么。 然后,您可以根据需要在主子例程的不同位置使用DoIfElse。