#excel #vba #runtime-error
Вопрос:
Любая идея, почему я получаю сообщение об ошибке в приведенном ниже коде, я пытаюсь разделить 3/4 на две колонки, содержащие 3 и 4 соответственно;
Я получаю сообщение об ошибке: Ошибка во время выполнения «1004»: Ошибка, определяемая приложением или объектом
Sub Test()
'Pause "Cell Contains a Value" Message Error
Application.DisplayAlerts = False
'Perform text to columnn function
Sheets("Look Up Tables").Range("Text_to_Columns").TextToColumns _
Destination:=Sheets("Look Up Tables").Range("AE16:AF:16"), _
DataType:=xlDelimited, _
Other:=True, _
OtherChar:="/"
'Resume "Cell Contains a Value" Error Message
Application.DisplayAlerts = True
End Sub
Комментарии:
1. В чем сообщение об ошибке?
2.
Range("AE16:AF:16")
— это опечатка в вашем коде или просто когда вы скопировали код в вопрос?3. Никакой опечатки (если вы не заметили что-то, что я пропустил), диапазон назначения находится глубоко в электронной таблице, поэтому ячейки AE16 и AF16 верны
4. Сообщение об ошибке, как описано в тексте сообщения над кодом; Ошибка во время выполнения «1004»: Ошибка, определяемая приложением или объектом
5. То, что @FunThomas говорит, что у вас есть опечатка.. дополнительный «:» в
"AE16:AF:16"
. Это должно быть"AE16:AF16"
Ответ №1:
Хорошо, очевидный ответ заключается в том, что определение диапазона назначения имеет дополнительное :
значение и, следовательно, является недопустимым — правильный синтаксис Range("AE16:AF16")
Это помогает разбивать такие длинные команды на части:
With ThisWorkbook.Sheets("Look Up Tables")
Dim sourceRange As Range, destRange as Range
Set sourceRange = .Range("Text_to_Columns")
Set destrange = .Range("AE16:AF:16") ' <-- Error is here
sourceRange.TextToColumns _
Destination:=destRange _
DataType:=xlDelimited, _
Other:=True, _
OtherChar:="/"
End With
Теперь вы получите сообщение об ошибке во время выполнения до выполнения TextToColumns
команды -, и вам станет намного легче обнаружить проблему. И нет, выполнение не замедляется.