2014-11-25 7 views
1

Корпус с функцией DateAdd.Trouble with Case - функция DateAdd VBA

Вот мой код

Select Case Range("O7").Value 

    Case "CST" 
     Sheet1.Cells(yz, 11).Value = DateAdd("hh", -6, Sheet1.Cells(yz, 11)) 
    Case "EST" 
     Sheet1.Cells(yz, 11).Value = DateAdd("hh", -5, Sheet1.Cells(yz, 11)) 
    Case "MST" 
     Sheet1.Cells(yz, 11).Value = DateAdd("hh", -7, Sheet1.Cells(yz, 11)) 
    Case "PST" 
     Sheet1.Cells(yz, 11).Value = DateAdd("hh", -8, Sheet1.Cells(yz, 11)) 
    Case Else 
     Range(Sheet1.Cells(yz, 11)).Value = Sheet1.Cells(yz, 11) 

End Select 

Попытка maniputlate дату, которая уже присутствует и изменение часов от их часового пояса в UTC. Мысли о том, как исправить мой код? «O7» содержит список КНТ, MST, EST, PST. YZ, 11 - это дата в текущем часовом поясе.

+0

Попробуйте следующее: http://stackoverflow.com/questions/1600875/how-to-get-the-current-datetime-in-utc-from-an -excel-vba-macro –

+0

Каков формат вашего Sheet1.Cells (yz, 11) – cronos2546

ответ

1

Правильный синтаксис для DateAdd() всего один "h" для обозначения часов. Кроме того, ваша последняя строка является излишней ... Удалить Range(Sheet1.Cells(yz, 11)).Value = Sheet1.Cells(yz, 11)