2015-03-09 1 views
2

У меня есть следующее, чтобы скопировать список и вставить в лист (данные). Я хочу, чтобы оно отображало сообщение, когда оно было успешным, и сообщив, в какой строке он начал вставлять. Однако вместо этого отображается errmsg.msgBox не отображается на успешном результате

Заранее спасибо

Dim current As String 
    current = ActiveCell.Index 
    MsgBox current & "pasted there" 

    Exit Sub 
errmsg: 
    MsgBox "failed to copy." 
End Sub 

полный код

Sub move() 
    Range("A3:B3").Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Selection.Copy 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 

    Range("K3").Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Selection.Copy 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 

    Range("F3:I3").Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Application.CutCopyMode = False 
    Selection.Delete Shift:=xlToLeft 

    Range("F3").Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Application.CutCopyMode = False 
    Selection.Delete Shift:=xlToLeft 

    Range("A3:G3").Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Selection.Copy 

    On Error GoTo errmsg 
    Sheets("data").Select 
    Range("A1").Select 
    Selection.End(xlDown).Offset(1, 0).Select 
    Selection.PasteSpecial Paste:=xlPasteValues 
    Dim current As String 
    current = ActiveCell.Index 
    MsgBox current & "pasted there" 

    Exit Sub 
errmsg: 
    MsgBox "failed to copy." 
End Sub 
+1

Для объектов диапазона отсутствует свойство или метод индекса. Это может вызвать ошибку, как то, что @Pillgram упоминается в его сообщении. Вместо этого вы можете попробовать «ActiveCell.Row», чтобы получить строку, в которую вы вставили значения. – L42

+0

Я использовал .Row вместо .address, но оба работали. Благодарю. – Maki

ответ

1

Добро пожаловать на SO :) Один из способов, чтобы попытаться отладки это было бы удалить/закомментировать в "On Error GoTo", затем запустите код. Это должно показать вам, какая строка генерирует ошибку. Тем не менее, я подозреваю, что вы хотите, чтобы current = ActiveCell.Index был current = ActiveCell.Address.

+1

Я использовал .Row (предложенный @ L42) вместо .address, но оба работали. спасибо – Maki

Смежные вопросы