2016-12-01 2 views
0

У меня есть код последующих в приложении VB6, что создает электронную таблицу Excel:Зачем это приводило к ошибке при последующих запусках?

wrksh.Range("F4:F" & rn).Select 
With Selection 
    .AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ActiveSheet.Range("J5"), Unique:=True 
End With 

Первый раз через это прекрасно работает. Если я удалю таблицу, запустите ее второй раз, не выключая программу, я получаю сообщение об ошибке «91», «Объектная переменная или с переменной блока, которая не установлена».

Любые идеи, почему и как я могу это исправить?

+0

попробовать код в мой ответ ниже, и дайте мне знать, если он работает для вас –

ответ

2

Предполагая, что ваш wrksh полностью соответствует действующему листу в вашей книге (определяется как Worksheet). rn - это числовое значение, представляющее последнюю строку вашего Range (defind as Long). И наконец, ActiveSheet тот же лист, как wrksh лист, то ниже код должен работать для вас:

With wrksh.Range("F4:F" & rn) 
    .AdvancedFilter Action:=xlFilterCopy, CopyToRange:=wrksh.Range("J5"), Unique:=True 
End With 
+0

Все ваши предположения верны , и ваше предложение DID устранить проблему. Благодарю. – Obfuscated

+0

@Obfuscated также сломанные часы показывают правильное время два раза в день :) Добро пожаловать –

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