Vba 对整列而不是一个单元格使用范围

Vba 对整列而不是一个单元格使用范围,vba,excel,Vba,Excel,我目前拥有的: Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) If IsEmpty(Range("G15").Value) = True Then If Selection.Count = 1 Then If Not Intersect(Target, Range("G15")) Is Nothing Then

我目前拥有的:

    Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If IsEmpty(Range("G15").Value) = True Then
        If Selection.Count = 1 Then
            If Not Intersect(Target, Range("G15")) Is Nothing Then
                Range("G15").Value = Date
            End If
        End If
    End If
End Sub
我创建此项的原因如下: 我想点击一个单元格,它会自动输入今天的日期。现在,如果单元格已经包含文本(不管是什么),那么它就没有否决该输入

我所创造的一切完美无瑕。。对于一个单元格。我希望它对整个列(在本例中是“G”列)都有效

我尝试使用Range(“G1:G1000”),但没有成功。我尝试过使用一个教程来解释如何使用多个范围(),但也没有成功

我错过了什么

Range("G15").EntireColumn

可能就是您要查找的内容。

使用下面的方法,如果您选择要添加日期的G行,则此方法有效

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If IsEmpty(Range("G" & Target.Row).Value) = True Then
        If Selection.Count = 1 Then
            If Not Intersect(Target, Range("G" & Target.Row)) Is Nothing Then
                Range("G" & Target.Row).Value = Date
            End If
        End If
    End If
End Sub

如果您可能在该范围内有一些非空单元格,但希望填充所有空单元格,则需要:

Option Explicit

Sub FillEmptyWithDates()

Dim Cell1 As Range
Dim Range1 As Range

Set Range1 = ActiveWorksheet.Columns(7)
For Each Cell1 in Range1
    If IsEmpty(Cell1.Value) = True Then
        Cell1.Value = Date
    End If
Next Cell1

End Sub
我对你的代码做了一点修改,因为它似乎让你很难完成你想要完成的事情:用当前日期填充G中的所有空单元格


不再在每次选择新单元格时触发此宏。您可以进入“宏”菜单,选择它,然后按下“运行”按钮。

非常感谢您的帮助。99moorem是我需要的。谢谢你的快速回复。