将范围用于整列而不是一个单元格

时间:2015-07-09 15:12:11

标签: excel vba excel-vba

我现在有什么:

    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"),但这并没有奏效。我尝试过使用一个教程,该教程解释了如何使用多个范围(http://www.yogeshguptaonline.com/2009/05/macros-in-excel-selecting-multiple.html),但这些都没有成功。

我在这里缺少什么?

3 个答案:

答案 0 :(得分:2)

Range("G15").EntireColumn

你可能正在寻找。

答案 1 :(得分:0)

如果您选择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

答案 2 :(得分:0)

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

#pragma comment

我稍微更改了你的代码,因为它似乎对你想要完成的事情感到困惑:用当前日期填充G中的所有空单元格。

每次选择新单元格时,此宏都不再触发。您将转到宏菜单,选择它,然后按“运行”按钮。