VBA Excel宏根据多个标准更新单元格值

问题描述:

我不可能解决这个问题,即时在我的沸点上限,所以我可以真正使用你的指导或帮助。我在标题中附加了一张图片。我需要一个vba宏来更新/更改列E(Ve规划)中的值,并具有以下接口:VBA Excel宏根据多个标准更新单元格值

  1. D列必须为空。
  2. 必须仅更新列A中的相同值。
  3. 列I(操作)= LASER。
  4. 如果列F(W NO)值相等。

然后更新操作LASER + 10天操作= SUDURA列E值的列E值。

enter image description here

我不知道你是否了解这个烂摊子,但如果这样做,任何帮助,不胜感激。

非常感谢!

+1

请问您能否详细说明要求并显示您的代码尝试并解释他们为什么不解决您的需求? –

+0

你好!可以这么说,这是一个调度逻辑,意味着对于每个生产订单(列A)而言,列D中没有完成的数量,并且在同一周(列F)具有与操作LASER相似的下一个操作SUDURA(列I) ,那么来自列E的值必须是来自列E的值,以用于操作LASER + 10天。它的一系列操作,并在同一周内成为一个约束。我的代码尝试是可悲的,因为我是一个总新手。 –

+1

请在您的评论中使用此新信息编辑您的问题,并发布您的代码。 –

尝试下面的短代码,它在我的测试中使用有限的数据记录进行工作。让我知道它是否也适用于您的数据。

Sub UpdateVEPlanning() 


Dim sht         As Worksheet 
Dim LastRow, lRow      As Long 

' modify "Sheet1" to whatever worksheet name you have 
Set sht = ThisWorkbook.Worksheets("Sheet1") 

' find last row in sheet with data 
LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).row 

For lRow = 2 To LastRow 

    If sht.Cells(lRow, 1) = sht.Cells(lRow - 1, 1) Then 
     If Not (sht.Cells(lRow, 9).Find("SUDURA") Is Nothing) And (IsEmpty(sht.Cells(lRow, 4).Value2) Or sht.Cells(lRow, 4).Value2 <= 0) Then 
      If sht.Cells(lRow, 6) = sht.Cells(lRow - 1, 6) Then 
       sht.Cells(lRow, 5) = sht.Cells(lRow - 1, 5) + 10 
      End If 
     End If 
    End If 

Next 


End Sub 
+0

它的作品...就像一个魅力。即时尝试现在了解你做了什么。太感谢了。如果我不明白它,我可以询问更多有关您的代码逻辑的问题吗? –

+0

@CatalinCernat sure –

+1

如果列A的值不正确,例如FPO120000之间存在不同的值,那该怎么办?因为我试图理解你的代码只有在列A中有相同的值时才设置E列的值,对吗? lRow - 1?因此数据必须在A列中包含相同值的块中,因此不能交织在一起。 –