【问题标题】:Update Outline Header Cell if child rows have 1 or more populated values如果子行有 1 个或多个填充值,则更新大纲标题单元格
【发布时间】:2020-10-24 16:44:25
【问题描述】:

我在扫描轮廓和子行时真的很挣扎。在下面的代码中(见附图)我有一个工作表(图 A),我想在其中扫描列 C,当值为 1(大纲)时,我想扫描所有嵌套行,直到我点击下一个大纲,这将为 1 并且您可以在 C 列中将级别编号分配给嵌套组,因此当 C 列中的级别编号为 1 时,相同的例程需要再次循环,直到 C 列中的最后一行(或最后一个大纲)。一旦找到大纲(1 级),我就想扫描所有嵌套的行/子组,以查看 D 列(加载编号)中是否有值。如果至少有 1 行有值,那么我想更新原始父级别上的单元格值,状态为“SPLIT LOAD”,否则为“SINGLE LOAD”(参见图 D)。这是我的代码,我只是绕圈子,因为它没有扫描我的子行。

Sub ScanRows()
     Dim LoadNumber As Integer
     Dim LevelNumber As Integer
     Dim LoadStatus As String
     Dim LastRow As Long, i As Long

     LastRow = Cells(Rows.Count, "C").End(xlUp).Row
       
     For i = 1 To LastRow
         
       If Range("C" & i).Value = 1 And Range("D" & i).Value <> "N/A" Then
        
            LoadNumber = Range("D" & i).Value
            LoadStatus = Range("E" & i).Value
            
           If Range("C" & i).Value > 1 And IsEmpty(Range("D" & i).Value) Then
               ' Update the Loadstatus "SINGLE LOAD"
               Else
               ' Update the Loadstatus "SINGLE LOAD"
           End If
            
     End If
    
 Next i
 
 End Sub

谢谢

【问题讨论】:

    标签: excel vba loops


    【解决方案1】:

    使用一个辅助列很容易做到这一点。使用公式添加新列 d =IF(C2=1,D1+1,D1)

    然后你之前的 d 就是公式 =IF(C2=1,IF(AND(C2=1,COUNTIFS(D:D,D2,E:E,">="&0)>1),"分装","单装"),"" )

    【讨论】:

    • 非常感谢您的回复,并且完全按照我的意愿工作。非常感谢您的帮助。再次感谢您
    • 很高兴有帮助!当我更多地考虑这个问题时,如果你真的想要一个宏解决方案,你可以创建一个宏来添加一行,自动填充这些公式,粘贴为值,然后删除辅助列。如果您需要帮助,请告诉我。
    • 非常喜欢此解决方案,但感谢您并尊重您的支持伙伴!我是 vba 和编码的新手,并且真的很喜欢学习,但是我有时间来解决问题,因此发布了这篇文章。不想遇到懒惰 :-) 您为我排序的解决方案是从我们的 PLM 系统中提取的 BOM(物料清单),我们希望在其中发布具有相关逻辑的流程以提供运输装箱单,以便我们的生产团队可以在相关容器中装载相关的生产部件。这就是为什么负载很重要!我会坚持使用 PLM 系统,我认为哈哈............谢谢
    • Marci 猜猜客户现在要求它是一个宏是什么。原因是级别 1(父级)和子行的数量可能会根据它们从 BOM 本身获得的提取而有所不同。我创建了一个宏来轻松创建 Helper 列并填充公式,但我现在的问题是如何根据级别 1 的数量和总行数使两个列都工作,因为它们每次都可能不同
    • 你能再发一张数据的截图吗?
    猜你喜欢
    • 1970-01-01
    • 2016-02-14
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多