2016-06-06 4 views
0

Я пытаюсь отправить данные после обработки. Также я получил столбец, у которого есть час минута и секунда. С VBA я создал цикл для прохождения каждой отдельной строки в цикле for.(VBA) динамическое использование встроенных функций excel

For i = 2 To Max 
Range("GE" & CStr(i + Offset)).Formula = "=TIME(AK & CStr(i + Offset);AL & CStr(i + Offset);AM & CStr(i + Offset))" 
Next i 

Приходит к ошибке времени выполнения 1004: Определенная пользователем или объектная ошибка.

Как мы можем отредактировать это для работы?

+1

Что вы хотите сказать? – Jordan

+0

David 'mArm' Ansermot отредактировал это. ehm это не сработало, и я не могу получить проблему – ventavox

ответ

0
For i = 2 To Max 
    Range("GE" & CStr(i + Offset)).Formula = "=TIME(AK" & CStr(i + Offset) & ",AL" & CStr(i + Offset) & ",AM" & CStr(i + Offset) & ")" 
Next i 

Переменная цикла должна быть «вне» строки, которую вы вводите, в качестве формулы, чтобы она могла быть построена правильно.

Это исправляет опечатку в вашем коде, но вы должны рассмотреть возможность установки диапазона специально для рабочего листа.

Я также сменил точки с запятой на запятую, так как функция TIME работает в Excel здесь, но если ваши настройки разные, вам может потребоваться вернуть это.

+0

Большое спасибо, это отлично работает. Пробовал это еще раньше, но каким-то образом запутался во всех «. Однако, что означает« под », ... задавая диапазон специально для рабочего листа. "? – ventavox

+0

Ваш код выбирает диапазон для активного листа по умолчанию, так как вы его не указали. Предположим, вы хотите, чтобы это выполнялось против sheet1, если вы должны выбрать Sheet2 во время запуска кода, он будет работать против этого листа Вместо этого это можно избежать, объявив переменную в качестве листа и префиксом ее в Range («Dim ws As Worksheet: Set ws = Thisworkbook.Worksheets (« Sheetnamehere »)», а затем ссылаясь на «ws.Range», а не просто 'Range' – Dave

+0

ah okay. Да, я сделал это, код был всего лишь фрагментом и сведен к моей проблеме. Но еще раз спасибо;) – ventavox

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