2017-01-15 5 views
1

A7以降の行にデータがあるまで、特定の指定範囲から指定したFirstRowからLastRowに式をコピーする方法に関する質問があります。LastRowを使用してペースト範囲をコピーする

A7からLastRowにデータがあるまでは、H6:J6の数式をH7:J7からLastRowまで貼り付けてください。

ここで問題は、A7以降の行が空の場合、数式をH5:J5にコピーすることです。 A7以降が空の場合、式がまったくコピーされないように、使用できるコードはありますか?おそらくFirstRowを固定か何かとして定義します。

Sub CopyFormulaIF() 

Dim myLastRow As Long 
Dim myCol As Long 
Dim WB As Workbook 
Dim WS As Worksheet 

Set WB = ThisWorkbook 
Set WS = WB.Sheets("Tabelle1") 

'Screen update in 0 seconds 
Application.ScreenUpdating = 0 

With WS 
    myLastRow = .Range("A" & .Rows.Count).End(xlUp).Row 
End With 

For myCol = 8 To 10            
    Cells(6, myCol).Copy           
    Range(Cells(7, myCol), Cells(myLastRow, myCol)).PasteSpecial Paste:=xlFormulas 
Application.CutCopyMode = False        
Next myCol 

End Sub 

サンプル:myLastRowが正しい値を返す場合 enter image description here

おかげでたくさんの男

+0

を行うことができ、あなたはチェックしましたか?サンプルからA2、A3、A6が空であることが分かります。したがって、myLastRowの値はおそらく3セル短くなります。 –

+0

@ YowE3K説明してくれてありがとう! –

答えて

2

あなたはこの

Option Explicit 

Sub CopyFormulaIF() 
    Dim myLastRow As Long 
    Dim myCol As Long 

    'Screen update in 0 seconds Application.ScreenUpdating = 0 

    With ThisWorkbook.Sheets("Tabelle1") 
     myLastRow = .Range("A" & .Rows.Count).End(xlUp).Row 

     If myLastRow < 7 Then Exit Sub 

     For myCol = 8 To 10 
      .Range(.Cells(7, myCol), .Cells(myLastRow, myCol)).FormulaR1C1 = .Cells(6, myCol).FormulaR1C1 
     Next 
    End With 
End Sub 
+0

@Denny、それを乗り越えましたか? – user3598756

+0

こんにちはuser3598756、上記のコードは完全に動作します。あなたの助けに感謝します。 :-) – Denny

+0

あなたは大歓迎です。あなたは受け入れられたとして回答をマークしたいかもしれません。ありがとうございました! – user3598756

関連する問題