[英]How to apply a macro/vba formula to specific cells
我想將 vba 公式應用於指定單元格。 我正在研究的 vba 是:如果我在 C2 上鍵入內容,日期戳將自動放入 D2。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
With Target.Offset(0, 1)
.Value = Now
.NumberFormat = "MM/DD/YYYY"
End With
End Sub
但是,如果我在 C1 上輸入了一些內容,也會出現一個日期戳。 如何限制 vba 的范圍? 例如,我只想要從 D2 到 D5 的日期戳。
謝謝!!
您可以應用Intersect
function 來檢查目標是否在所需范圍內,如下所示
Dim dr As Range
Set dr = Range("C2:C5")
If Not Intersect(target, dr) Is Nothing Then
... it is OK, go ahead
EndIf
第一個答案是正確的,但是這里是它的完整版本
將此粘貼到表的項目中,而不是作為 VBA 模塊
Private Sub Worksheet_Change(ByVal Target As Range)
Dim WorkRng As Range
Dim rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("C2:C5"), Target)
xOffsetColumn = 1
If Not WorkRng Is Nothing Then
Application.EnableEvents = False
For Each rng In WorkRng
If Not VBA.IsEmpty(rng.Value) Then
rng.Offset(0, xOffsetColumn).Value = Now
rng.Offset(0, xOffsetColumn).NumberFormat = "mm-dd-yyyy"
Else
rng.Offset(0, xOffsetColumn).ClearContents
End If
Next
Application.EnableEvents = True
End If
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.