2016-09-30 6 views
-1

Мотивом моего кода является обновление одной ячейки за один раз комментарием, который обновил ячейку в какое время. Но вместо того, чтобы обновлять одну ячейку за раз, она обновляет все мои ячейки в K-строке. Например, если я хочу обновить ячейку обновления K10 от K6 до K10 с тем же значением. Пожалуйста, помогитеExcel VBA для обновления только одной ячейки за один раз

Sub ActiveCell_Initial() 
strUserName = Application.UserName 
Range(ActiveCell, "K6").Value = " by " & strUserName & "@ " & Now() 
End Sub 
+1

Как вы думаете, что «K6» делает в вашем коде? Range (a, b) сообщает excel, чтобы выбрать все ячейки между a и b включительно, а затем, если вы измените значение, оно изменит ячейки вызова в этом диапазоне. –

ответ

1

Это обновит только ActiveCell:

Sub ActiveCell_Initial() 
    strUserName = Application.UserName 
    ActiveCell.Value = " by " & strUserName & "@ " & Now() 
End Sub 
+0

Быстрый вопрос. Могу ли я использовать синхронизацию из другого часового пояса? – RKVALU

+1

@ RKVALU Уверенный: http://www.cpearson.com/Excel/TimeZoneAndDaylightTime.aspx –

2
Application.Calculation=xlCalculationManual 
range("K6:K10").calculate 

делает эту помощь?

или, может быть, вы просто хотели это написать? (Не уверен, что я ловлю на вопрос)

Sub ActiveCell_Initial() 
strUserName = Application.UserName 
ActiveCell.Value = " by " & strUserName & "@ " & Now() 
End Sub 
+0

Отлично работает. Спасибо. – RKVALU

0

вы не можете использовать Funciton первенствовать NOW() на всех и использовать функцию VBA, чтобы получить DateTime (я не могу вспомнить команды), так что в клетке он говорит "by bob smith @ 1/1/2016 00:00:01" вместо "by bob smith @ NOW()"

В качестве альтернативы вы можете скопировать ячейку и специальную пасту - значения, которые будут только вам, такой же результат, но, скорее всего, будет более вычислительным hevy

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