VBS If Variable ›Variable Then

Я пишу сценарий для удаления папок старше определенного временного окна.

Проблема, с которой я столкнулся, связана с оператором If then.

If strCurrentAge > strAgeCutoff Then

strCurrentAge = вычисление разницы дат (вычисляет дни между настоящим моментом и датой последнего изменения папки)

strAgeCutOff = AgeCutOff.value (textbox input value from an HTA... Typical value would be 30)

strAgeCutOff как число.

strCurrentAge, похоже, распознается как число.

Биться головой о стену, пытаясь понять это.


person DavidRyan520    schedule 29.01.2014    source источник
comment
Покажи свой реальный код. Откуда берется strCurrentAge?   -  person Ghost    schedule 29.01.2014
comment
Извините, я не включил весь скрипт, но strCurrentAge работает нормально, когда я заменяю strAgeCuttOff на фактическое число. Пример: Если strCurrentAge ›30 Then   -  person DavidRyan520    schedule 29.01.2014
comment
Мы не сможем отладить для вас код, который вы не включили в свой вопрос.   -  person Ken White    schedule 29.01.2014
comment
Будет сложно диагностировать без дополнительного кода, иначе все, что можно было бы сделать, это нанести удар в темноте. Какую ошибку вы получаете? Вы можете попробовать явным образом преобразовать его в Int или Dbl, используя Cint(strAgeCutOff) или CDbl(strAgeCutOff), в зависимости от ситуации, но это может быть молотковым решением проблемы с винтом - это сработает, но может быть неправильным.   -  person Ghost    schedule 29.01.2014
comment
На данный момент я считаю, что это не столько ошибка, сколько то, можно ли это сделать? Я сейчас не на работе и не могу опубликовать сценарий. Я буду завтра. Надеялся, что кто-нибудь скажет мне, что это можно или нельзя.   -  person DavidRyan520    schedule 29.01.2014
comment
Спасибо, Призрак ... Я попробовал Int (), но не повезло ... Я попробую вашу идею завтра и дам вам знать.   -  person DavidRyan520    schedule 29.01.2014


Ответы (1)


Если AgeCutOff - это текстовое поле, тогда AgeCutOff.value на самом деле не будет числом, это будет текст.

Если вы хотите получить от него число, посмотрите на функцию CInt(). Вы также можете использовать CLng для большего диапазона, но, если вы не говорите о возрасте вещей, которые живут значительно дольше, чем люди, целых чисел до 32000 должно хватить.

person paxdiablo    schedule 29.01.2014
comment
Понятно ... Я попробую. Я пробовал Int (), но не повезло. - person DavidRyan520; 29.01.2014