2017-02-08 2 views
0

同じブックのシート1からシート2にデータをコピーしたい。データセットは、シート1のB3からC3までの範囲C3からシート2のF3にコピーする必要があります。データは、シート2に毎日ログとしてコピーされます。 Rangeオブジェクトで単一のセルを定義しても、複数のセルでは動作しない場合に動作するコードがあります。毎日1から2までのデータをログとしてコピーする

ボタンにコードが挿入されています。コードを以下で見つけてください。私は初心者であり、誰かがこのエラーに助けてくれれば感謝しています。範囲に "シート1"( "B3:F3")から:レンジ( "C7 C3")をコピーするには

Private Sub CommandButton21_Click() 

    Dim Data As String 
    Worksheets("Sheet1").Select 
    Data = Range(Cells(3, 3), Cells(3, 7)) 
    Worksheets("Sheet2").Select 
    Worksheets("Sheet2").Range(Cells(2, 3), Cells(6, 3)).Select 

    If Worksheets("Sheet2").Range(Cells(2, 3), Cells(6, 3)).Offset(1, 0)<> "" Then 
     Worksheets("Sheet2").Range(Cells(2, 3), Cells(6, 3)).End(xlDown).Select 
    End If 
    ActiveCell.Offset(1, 0).Select 
    ActiveCell.Value = Data 
    Worksheets("Sheet1").Select 
    Worksheets("Sheet1").Range(Cells(3, 3), Cells(3, 7)).Select 

End Sub 

Private Sub Update_Click() 

End Sub 

答えて

0

"シート2" で、あなたは(SelectActiveCellを使用せずに)以下のコードを使用することができます。

Private Sub CommandButton21_Click()  

    Worksheets("Sheet1").Range("C3:C7").Copy  
    Worksheets("Sheet2").Range("B3").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _ 
            SkipBlanks:=False, Transpose:=True 

End Sub 

:これは、以前の日付のデータを「上書き」になりますし、ログとしてそれを使用するのは難しいだろう。

あなたは「シート2」の列Bの最初の空の行にペーストし、以下のコードを使用することができます。

Private Sub CommandButton21_Click() 

    Dim LastRow As Long  
    Worksheets("Sheet1").Range("C3:C7").Copy    

    With Worksheets("Sheet2") 
     LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row + 1 '<-- find first empty row in column B   
     .Range("B" & LastRow).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _ 
            SkipBlanks:=False, Transpose:=True   
    End With 

End Sub 
+0

おかげシャイ迅速な対応のために!コードの最初の部分は正常に動作しますが、2番目の部分はコンパイルエラーです。 "あいまいな名前が検出されました。"私はこれをどのように動かすことができるか教えていただけますか? –

+0

@ArnabDどのラインでエラーが出ますか? ywllow線はどこにありますか? –

+0

コードは正常に動作します。両方のコードをコピー&ペーストしてしまって申し訳ありません。その結果、エラーが発生しました。あなたの助けをもう一度お寄せいただき、ありがとうございます。 :) –

関連する問題