2010-12-07 2 views
0

Я совершенно новый в этой области и даже в VB. Текущая производительность одного из моих скриптов очень плохая. Я не знаю, как его профиль. Поэтому я просто использую «Shift + F8», чтобы «перешагнуть» инструкции один за другим, чтобы увидеть, где он замерзает. Тогда оказывается две следующие инструкции:Улучшить производительность типа DATE в VBA Outlook 2007

//This compare instruction 
If mail.SentOn < eCase.firstAppearance Then 
    eCase.firstAppearance = mail.SentOn 
End If 

//And this assignment instruction in another place 
eCase.firstAppearance = mail.SentOn 

ЛЕГЕНДА: «Электронная почта» является экземпляром «MailItem» и «eCase» является экземпляром общественного класса со следующим элементом:

Public firstAppearance As Date 

IMHO, возможно, мне нужно заменить 'Date' на 'Date_POINTER' или 'Date_REF', чтобы избежать создания копии. Я не знаю, возможны ли это. Я также не знаю, как улучшить производительность этой команды сравнения.

Мне также нужно знать, как правильно его проецировать. На всякий случай, я смотрю на совершенно ненужное место.

ответ

0

Наконец, я решил использовать CLng (expr) для преобразования 'Date' в 'Long' и сохранения/сравнения с этим значением. Это все еще медленно, но не так медленно.

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