簡體   English   中英

如何將宏/vba 公式應用於特定單元格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM