Там написано, что значение будут вставляться в столбик, а мне нужно чтобы вставлялось в ячейку например Z3. И не добавлялось вниз по столбику или по строке, а менялось на новую дату и время.
Скажите а почему я не могу скопировать значение из ячейки Z3? Оно при просмотре есть, а как пытаюсь скопировать его формулой в другой фаил, его нет? Такое ощущение что это как маска.
Скажите а как сделать так, чтобы время бралось по МСК? А то регионы будут заходить править, а время будет отображаться по их региону (Например Сахалинская область +7 часов)
Получил вопрос от автора топика , но уже Вконтакте.
Вопрос заключается на самом деле в следующем- Необходимо при изменении значения ячейки поля (к примеру А1) выводить в соседней ячейке (к примеру B1 ) текущее значение времени в формате Now() , но обязательно всегда чтобы отображалось Московское Время, независимо от региона ввода - Нью Йорк это будет, Новосибирск или Пекин. Проблему решил интересным способом, на изменение значения ячейки можно повесить следующую процедуру:
Код
Public Function GetDateTime()
'Москва (+14400 s)
Dim t#
With CreateObject("MSXML2.XMLHTTP" ;)
.Open "sntp", "http://www.direct-time.ru/track.php?id=time_utc", 0
.send
t = .responseText / 1000
GetDateTime = DateAdd("s", t + 14400, #1/1/1970#)
End With
End Function
При изменении ячейки можно обращаться к данной процедуре в качестве вставляемого параметра. Данный код обращается к сайту эталону и выгребает оттуда данные по московскому времени с точностью до секунды.
Private Sub Worksheet_Change(ByVal Target As Range)
' а теперь совместим вставку данных московского текущего времени и процедуру изменения ячейки:
Dim GetDateTime
'Москва (+14400 s)
Dim t#
With CreateObject("MSXML2.XMLHTTP" ;)
.Open "sntp", "http://www.direct-time.ru/track.php?id=time_utc", 0
.send
t = .responseText / 1000
GetDateTime= DateAdd("s", t + 14400, #1/1/1970#)
End With
For Each cell in Target 'проходим по всем измененным ячейкам
If Not Intersect(cell, Range("A2:N1000" ;) Is Nothing Then
With Range("O" & cell.row)
.Value = GetDateTime
.EntireColumn.AutoFit
End With
End If
Next cell
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim GetDateTime
' (+14400 s)
Dim t#
With CreateObject("MSXML2.XMLHTTP" ;)
.Open "sntp", "http://www.direct-time.ru/track.php?id=time_utc", 0
.send
t = .responseText / 1000
GetDateTime = DateAdd("s", t + 14400, #1/1/1970#)
End With
If Target(1, 1).Column = 1 Then Target(1, 2).Value = GetDateTime
'где Target(1, 1).Column = 1 изменение ловится в первом столбце
' где Target(1, 2).Value = GetDateTime значение московского времени вставляется во второй
End Sub
Сергей Лалов, Вы издеваетесь? Опять с цитатой?! Увижу ещё одно Ваше сообщение с цитатой - буду удалять. А пока отредактируйте свои существующие сообщения - удалите цитирование.