2017-10-12 36 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