添加新线转置信息

时间:2017-10-12 21:46:05

标签: excel-vba vba excel

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



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
&#13;
&#13;
&#13;

我几乎完成了,但我被困住了。到目前为止,这是我的代码:我现在遇到的问题是,我正在获得一行的多个版本。我需要它,如果Sheets(&#34; 1&#34;)。范​​围(&#34; D28&#34;)&lt;&gt;表格(&#34; 1&#34;)。范​​围(&#34; I26&#34;)然后它会为该匹配添加该行。

1 个答案:

答案 0 :(得分: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-statements For-loops ,我建议您在线搜索一些教程没有这些工具,我们无法真正实现任何任务的自动化。

事实上,您提到过您可能需要对几个不同的单元格执行此过程,这意味着 For-loop 可以方便地遍历您需要的所有不同单元格。< / p>