首页 > 解决方案 > 从具有许多语句的另一张表进行条件复制不起作用

问题描述

我想用脚本节省大量时间,所以我用谷歌搜索了一些方法,如果语句为真(并且在完整代码中大约有 200 条语句),则将一些单元格从 Excel 表复制到另一个,但不幸的是我被卡住了,并且它只是不想工作。第一个运行得很好,但是其他的,它应该检查右边另一个单元格中的语句是否为真,将不起作用。

Sub Proc1()
Dim value As String, result As String

Value1 = Worksheets("munka4").Range("H6").value
Value2 = Worksheets("munka4").Range("I6").value
Value3 = Worksheets("munka4").Range("J6").value

If Value1 = "Car" Then
 Worksheets("munka4").Range("E6").Copy Worksheets("munka2").Range("F10") 
 Worksheets("munka4").Range("F6").Copy Worksheets("munka2").Range("H10") 
 Worksheets("munka4").Range("D6").Copy Worksheets("munka2").Range("B10") 
 Worksheets("munka4").Range("H9").Copy Worksheets("munka2").Range("B8") 
 Worksheets("munka4").Range("H8").Copy Worksheets("munka2").Range("B12") 
 Worksheets("munka4").Range("H10").Copy Worksheets("munka2").Range("B14") 

 If Value2 = "Car" Then
 Worksheets("munka4").Range("E6").Copy Worksheets("munka2").Range("F10") 
 Worksheets("munka4").Range("F6").Copy Worksheets("munka2").Range("H10") 
 Worksheets("munka4").Range("D6").Copy Worksheets("munka2").Range("B10") 
 Worksheets("munka4").Range("I9").Copy Worksheets("munka2").Range("B8") 
 Worksheets("munka4").Range("I8").Copy Worksheets("munka2").Range("B12")  
 Worksheets("munka4").Range("I10").Copy Worksheets("munka2").Range("B14")  

 If Value3 = "Car" Then
 Worksheets("munka4").Range("E6").Copy Worksheets("munka2").Range("F10") 
 Worksheets("munka4").Range("F6").Copy Worksheets("munka2").Range("H10") 
 Worksheets("munka4").Range("D6").Copy Worksheets("munka2").Range("B10") 
 Worksheets("munka4").Range("J9").Copy Worksheets("munka2").Range("B8") 
 Worksheets("munka4").Range("J8").Copy Worksheets("munka2").Range("B12")  
 Worksheets("munka4").Range("J10").Copy Worksheets("munka2").Range("B14")

 End if 
 End if 
 End if

 End Sub

标签: excelvba

解决方案


由于您的测试是完全独立的,因此您应该在复制单元格的指令块结束后关闭“if Value”代码块。试试这样:

Sub Proc1()
Dim value As String, result As String

  Value1 = Worksheets("munka4").Range("H6").value
  Value2 = Worksheets("munka4").Range("I6").value
  Value3 = Worksheets("munka4").Range("J6").value

    If Value1 = "Car" Then
     Worksheets("munka4").Range("E6").Copy Worksheets("munka2").Range("F10") 
     Worksheets("munka4").Range("F6").Copy Worksheets("munka2").Range("H10") 
     Worksheets("munka4").Range("D6").Copy Worksheets("munka2").Range("B10") 
     Worksheets("munka4").Range("H9").Copy Worksheets("munka2").Range("B8") 
     Worksheets("munka4").Range("H8").Copy Worksheets("munka2").Range("B12") 
     Worksheets("munka4").Range("H10").Copy Worksheets("munka2").Range("B14") 
   End if 

     If Value2 = "Car" Then
     Worksheets("munka4").Range("E6").Copy Worksheets("munka2").Range("F10") 
     Worksheets("munka4").Range("F6").Copy Worksheets("munka2").Range("H10") 
     Worksheets("munka4").Range("D6").Copy Worksheets("munka2").Range("B10") 
     Worksheets("munka4").Range("I9").Copy Worksheets("munka2").Range("B8") 
     Worksheets("munka4").Range("I8").Copy Worksheets("munka2").Range("B12")  
     Worksheets("munka4").Range("I10").Copy Worksheets("munka2").Range("B14")  
    End if 

     If Value3 = "Car" Then
     Worksheets("munka4").Range("E6").Copy Worksheets("munka2").Range("F10") 
     Worksheets("munka4").Range("F6").Copy Worksheets("munka2").Range("H10") 
     Worksheets("munka4").Range("D6").Copy Worksheets("munka2").Range("B10") 
     Worksheets("munka4").Range("J9").Copy Worksheets("munka2").Range("B8") 
     Worksheets("munka4").Range("J8").Copy Worksheets("munka2").Range("B12")  
     Worksheets("munka4").Range("J10").Copy Worksheets("munka2").Range("B14")
   End if

End Sub

推荐阅读