2017-02-24 22 views
0

列Dをハイライト表示しようとするたびに、「実行時エラー '13'」が表示されます。デバッグをクリックすると、この部分がコードIf Target.Value = "Closed" Or Target.Value = "Closed" Thenからハイライトされます。この問題を解決する方法についてアドバイスをいただければ幸いです。実行時エラー13行全体をハイライト表示するとき

編集*

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 


Dim wsd As Worksheet 
Dim wsc As Worksheet 
Application.ScreenUpdating = False 
Set wsd = Sheets("Pipeline") 
Set wsc = Sheets("Closed") 
If Not Intersect(Target, Range("D6:D65536")) Is Nothing Then 
    If Target.Value = "Closed" Or Target.Value = "Closed" Then 
erow = Target.Row 
MsgBox "Moved to Closed" 
numberofrow = wsc.Range("A65536").End(xlUp).Row 
For i = 1 To numberofrow 
If wsd.Cells(erow, 1) = wsc.Cells(i, 1) Then 
Exit Sub 
End If 
Next 

wsd.Range("A" & erow & ":A" & erow).EntireRow.Copy wsc.Range("A" & numberofrow + 1) 
With Target.Parent 
    Union(.Range(.Cells(Target.Row, "A"), .Cells(Target.Row, "V")), _ 
     .Range(.Cells(Target.Row, "Y"), .Cells(Target.Row, .Columns.Count))).ClearContents 
`enter code here`End With 
wsc.Activate 
ActiveSheet.Range("A2:D" & numberofrow + 1).Select 
ActiveWorkbook.Worksheets("Closed").Sort.SortFields.Clear 
ActiveWorkbook.Worksheets("Closed").Sort.SortFields.Add Key:=Range("C2:C" & numberofrow + 1), _ 
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
With ActiveWorkbook.Worksheets("Closed").Sort 
.SetRange Range("A2:D" & numberofrow + 1) 
.Header = xlYes 
.MatchCase = False 
.Orientation = xlTopToBottom 
.SortMethod = xlPinYin 
.Apply 
End With 
wsd.Activate 
End If 
End If 


End Sub 

私はそれはかなり醜いだ理由である、この作業を取得するために、一緒にいくつかのことをピースに持っていました。私はガード句をどこに置くべきか分からなかった。これまでのところ、実行時エラーを除いて必要なものに対しては、列Dに入力されたセールスステージに基づいてアカウントを別のシートに転送していました。再度、すべてのサポートに感謝します。

+4

イベントハンドラにガード句を追加します: 'If Target.Cells.Count = 1'。 – Comintern

+2

また、なぜ同じ条件が2回あるのですか? – BruceWayne

+0

Worksheet_SelectionChangeイベント・マクロを改善して、ワークシート上で何かを実行するたびに起動しないようにする必要があります。 – Jeeped

答えて

0

ハンドラは、1つのセルのみが選択されているものとみなします。列全体をハイライト表示すると、Targetは選択されたすべてのセルを表し、Target.Valueは意味を持たないため、ランタイムエラーが発生します。情報あなたに与えられた

If Target.Cells.Count > 1 Then Exit Sub 

おそらくそのイベントハンドラは/ Targetマクロが考えるものであることを確認するために多くの微調整が必​​要なことがあると仮定し、しかし:

あなたはその仮定、as was suggestedを削除するには、あなたのハンドラを変更する必要がありますそれはそれを提供しました。

+0

オリジナルの投稿を編集してコード全体を組み込んだ。うまくいけば助けになるだろう – Andy

+0

@Andy必要はなかった、問題は同じである - 「Target」に複数のセルが含まれている場合はいつでも、手続きの先頭に上記の条件を追加するだけでよい。これで問題は解決しないのでしょうか? –

+0

恐ろしい!完璧に働いた、100万のおかげで! – Andy

関連する問題