2016-06-23 5 views
0

私はVBAを書いてから7年間離れていたし、今日、私は52週次サマリーの内容を取り、1にそれらのすべてを置くしようとしています、私は簡単なことを行うように求めてきた、それはアクティブセルの変更時にVBAマクロが停止するのはなぜですか?

を動作しません。シート:

私は最初のシートに行くことができます - 私は必要なデータをコピーします - 要約シートに行きます - データを貼り付けてください - そして、それは停止します...値を変更してから停止します。

セキュリティ設定などがありませんか?ここで

はVBA

Sub Macro3() 
' 
' Macro3 Macro 
' 

' Take cell contents of active sheet and paste into summary sheet 

Sheets("we 03 Jan").Select 
Do 
    shtName = ActiveSheet.Name 
    Range("A10:U39").Select 
    Application.CutCopyMode = False 
    Selection.Copy 

    Sheets("Full Year").Select 
    ActiveCell.Offset(1, 0).Range("A1").Select 
    ActiveCell.Value = shtName 
    ' stops here 
    ActiveCell.Offset(1, 0).Range("A1").Select 
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ 
    False, Transpose:=False 
    ' stops here if previous line causing stop is removed 
    Sheets(shtName).Select 
    If ActiveSheet.Index = Worksheets.Count Then 
     Worksheets(1).Select 
     Exit Sub 
     Else 
     ActiveSheet.Next.Select 
     End If 
Loop 
End Sub 
+0

私はあなたの変更に応じて実行されているいくつかのイベントコードがあると思います。 – Rory

答えて

1

は、この作業を行うのですか?

Sub Macro3() 
    Dim n      As Long 
    Dim ws     As Worksheet 

    On Error GoTo clean_up 

    With Application 
     .ScreenUpdating = False 
     .EnableEvents = False 
    End With 

    Sheets("we 03 Jan").Select 
    For n = ActiveSheet.Index To Sheets.Count 
     Set ws = Sheets(n) 
     ws.Range("A10:U39").Copy 

     With Sheets("Full Year").Cells(Rows.Count, "A").End(xlUp).Offset(1) 
      .Value = ws.Name 
      .Offset(1, 0).PasteSpecial Paste:=xlValues, Operation:=xlNone, _ 
             SkipBlanks:=False, Transpose:=False 
     End With 
    Next n 

clean_up: 
    With Application 
     .EnableEvents = True 
     .ScreenUpdating = True 
    End With 

End Sub 
+0

私が過去7年間にどれだけ逃してしまったかを私に感じさせる。はい、あります - ありがとうございます –

関連する問題