2017-10-12 28 views
-3

我想设置一个Excel电子表格,以便工作表2单元U2是我的控件。如果U3不匹配,我想在第1行第2行和第3行之间添加一行,并将第1页的单元格I3(新行)填入Sheet 2单元格D31中的信息中。我其实需要用几个单元来完成,但如果你能让我开始,我可以完成剩下的工作。添加新行转置信息

Sub Test() 
 

 
If Sheets("1").Range("D28") <> Sheets("1").Range("I26") Then 
 
End If 
 
If Sheets("1").Range("E28").Value > 0 Then 
 
    Sheets("Month").Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
 
    Sheets("Month").Range("I3").Value = Sheets("1").Range("E28").Value 
 
    Sheets("Month").Range("X3").Value = Sheets("1").Range("E27").Value 
 
End If 
 
If Sheets("1").Range("F28").Value > 0 Then 
 
    Sheets("Month").Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
 
    Sheets("Month").Range("I3").Value = Sheets("1").Range("F28").Value 
 
    Sheets("Month").Range("X3").Value = Sheets("1").Range("F27").Value 
 
End If 
 
If Sheets("1").Range("G28").Value > 0 Then 
 
    Sheets("Month").Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
 
    Sheets("Month").Range("I3").Value = Sheets("1").Range("G28").Value 
 
    Sheets("Month").Range("X3").Value = Sheets("1").Range("G27").Value 
 
End If 
 
If Sheets("1").Range("H28").Value > 0 Then 
 
    Sheets("Month").Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
 
    Sheets("Month").Range("I3").Value = Sheets("1").Range("H28").Value 
 
    Sheets("Month").Range("X3").Value = Sheets("1").Range("H27").Value 
 
End If 
 
If Sheets("1").Range("I28").Value > 0 Then 
 
    Sheets("Month").Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
 
    Sheets("Month").Range("I3").Value = Sheets("1").Range("I28").Value 
 
    Sheets("Month").Range("X3").Value = Sheets("1").Range("I27").Value 
 
End If 
 
If Sheets("1").Range("J28").Value > 0 Then 
 
    Sheets("Month").Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
 
    Sheets("Month").Range("I3").Value = Sheets("1").Range("J28").Value 
 
    Sheets("Month").Range("X3").Value = Sheets("1").Range("J27").Value 
 
    End If 
 
If Sheets("1").Range("K28").Value > 0 Then 
 
    Sheets("Month").Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
 
    Sheets("Month").Range("I3").Value = Sheets("1").Range("K28").Value 
 
    Sheets("Month").Range("X3").Value = Sheets("1").Range("K27").Value 
 
End If 
 

 
End Sub

我有它几乎完成,但我坚持。这是我迄今为止的代码:现在我遇到了什么问题,我正在获取一行的多个版本。我需要它,所以如果表格(“1”)。范围(“D28”)<>表格(“1”)。范围(“I26”),那么它不会添加该匹配的行。

回答

0

从我对你的问题的理解中,这段代码将完成所需的任务。

sub test() 

If Sheets("Sheet2").Range("U3").Value <> Sheets("Sheet2").Range("U2").Value then 
    Sheets("Sheet1").Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
    Sheets("Sheet1").Range("I3").Value = Sheets("Sheet2").Range("D31").Value 
end If 

end sub 

不过,既然你问这个问题似乎是比较简单的,我假设你是比较新的到Excel VBA。那么我建议你,下一次,来试验在Developper Tab可用录制宏按钮一点点。然后看看你获得的代码有一些灵感。

而对于东西,不能记录,如if语句for循环,那么我会建议一些在线教程搜索,因为你将不能够真正自动执行任何任务,而不这些工具。

事实上,您提到您可能需要为几个不同的单元执行此过程,这意味着可以方便地使用所需的所有不同单元。

+0

谢谢SOOOOO多。它工作完美。 –

+0

我很高兴能帮上忙。快乐的编码! – DecimalTurn