2013-02-19 11 views
3

Когда я попытался выполнить следующий код, я получил сообщение об ошибке, как «Ошибка выполнения„424“Требуется объект»,Ошибка выполнения Vba Excel Vba?

Sub test() 
Range("Q" & i).Text = x1.Text 
End Sub 

где x1 объект каландра.

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

Range("Q" & i) = x1.Text 

Мой код будет хранить дату как 02-11-2013 вместо 11-02-2013, проблема в том, что вновь устраивает месяц и Дата.

Надеюсь, у меня будет решение для этого.

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

+1

Я угадываю на вашей первой ошибки, вы используете x1 в объеме оно не определено. Если x1 не является глобальным (возможно, нет), вам нужно передать ссылку на него в декларации sub. – Joe

ответ

4

Вы получаете сообщение об ошибке, в первую очередь, так как .Text свойство диапазона чтения - только и используется для получения текущего форматированного значения от ячейки/диапазона.

Я хотел бы использовать функцию форматирования, но и установить формат номера ячейки вы положить его в безопасна:

Range("Q" & i).Value = Format(x1.Text, "dd-mm-yyyy") 
Range("Q" & i).NumberFormat = "dd-mm-yyyy;@" 

Edit: Далее вам комментировать, я бы предложил попробовать отформатировать поступающую дату с месяц и день поменялись местами, и затем приклеивается NumberFormat как так:

Range("Q" & i).Value = Format(x1.Text, "mm-dd-yyyy") 
Range("Q" & i).NumberFormat = "dd-mm-yyyy;@" 
+2

+ 1 для фактического объяснения, почему ошибка: –

+0

спасибо за объяснение, но это не работает в моем случае ... –

+0

@Siddharth Иногда помогает hey;) Rama Попробуйте отредактировать. – CuberChase

0

Вы можете использовать функцию Format:

Range("Q" & i).Value = Format(x1.Text, "dd-mm-yyyy") 
0

Пожалуйста, используйте Range("Q" & i) = Format(x1.Text,"dd-MM-yyyy")

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