作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个 VBA 代码来更改或更新 Excel 中同一行的 2 个单元格的时间戳,但是有些方法我只能在第一列更新时间戳当我更改值但没有发生第二列,它返回空白值。我也想保护工作表,所以当时间戳更新时,它被锁定并且无法编辑但不知道如何将其置于保护状态
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRg As Range
On Error Resume Next
Dim I As Range, J As Range, L As Range, M As Range
Set I = Range("I:I")
Set L = Range("L:L")
Set T = Target
' Timestamp for Trackin
If Intersect(I, T) Is Nothing Then Exit Sub
If Intersect(I, T).Value = "Yes" Then Range("J" & T.Row).Value = Now
' Timestamp for Completion
If Intersect(L, T) Is Nothing Then Exit Sub
If Intersect(L, T).Value = "Complete" Then Range("M" & T.Row).Value = Now
Application.EnableEvents = True
End Sub
最佳答案
PW
))。代码
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Const cCheckList As String = "I,L"
Const cWriteList As String = "J,M"
Const CriteriaList As String = "Yes,Complete"
Const PW As String = ""
Const FirstRow As Long = 2
Dim cCheck() As String: cCheck = Split(cCheckList, ",")
Dim cWrite() As String: cWrite = Split(cWriteList, ",")
Dim Criteria() As String: Criteria = Split(CriteriaList, ",")
Dim rng As Range
Dim ColOffset As Long
Dim n As Long
For n = 0 To UBound(cCheck)
Set rng = Intersect(Columns(cCheck(n)) _
.Resize(Rows.Count - FirstRow + 1).Offset(FirstRow - 1), Target)
If Not rng Is Nothing Then
ColOffset = Columns(cWrite(n)).Column - Columns(cCheck(n)).Column
Application.ScreenUpdating = False
Application.EnableEvents = False
Me.Unprotect Password:=PW
updateLock rng, Criteria(n), ColOffset, Now
Me.Protect Password:=PW
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
Next n
End Sub
Sub updateLock( _
rng As Range, _
ByVal s As String, _
ByVal ColOffset As Long, _
ByVal TimeStamp As Date)
Const ProcName As String = "updateLock"
On Error GoTo clearError
Dim aRng As Range
Dim cel As Range
For Each aRng In rng.Areas
For Each cel In aRng.Cells
If Not IsError(cel) Then
With cel
If StrComp(.Value, s, vbTextCompare) = 0 Then
If Not StrComp(.Value, s, vbBinaryCompare) = 0 Then
.Value = s
End If
.Locked = True
With .Offset(, ColOffset)
.Value = TimeStamp
'.Locked = True
End With
End If
End With
End If
Next cel
Next aRng
ProcExit:
Exit Sub
clearError:
Debug.Print "'" & ProcName & "': Unexpected Error!" & vbLf _
& " " & "Run-time error '" & Err.Number & "':" & vbLf _
& " " & Err.Description
Resume ProcExit
End Sub
Sub doEnableEvents()
Application.EnableEvents = True
End Sub
关于excel - 值更改时更新/时间戳到单元格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65726165/
给定一个带有多个 date_time 戳的字符串,我想 提取第一个戳及其前面的文本 候选字符串可以有一个或多个时间戳 后续的 date_time 戳记将被 sep="-" 隔开 后续date_time
是否可以合并从相机拍摄的文本和照片?我想在照片上标记日期和时间,但我在 Google 上找不到任何内容。 最佳答案 使用下面的代码来实现你所需要的。 Bitmap src = Bitm
有没有办法通过 Graph API 戳另一个用户?基于this post ,并使用 Graph Explorer ,我发布到“/USERID/pokes”,我已经授予它(Graph API 应用程序和
我有两个向左浮动的元素。一个是 body 的第一个 child ,另一个是容器的第一个 child ,容器是 body 的第二个 child 。 ...
我是一名优秀的程序员,十分优秀!