2017-04-26 22 views
-1

我期待做一個IF THEN語句,這將有助於我將日期放入U列。但是,我不知道如何去做。靜態日期在最後一列

Sub() 
    Dim rng1 As Range 
    Set rng1 = Selection.SpecialCells("U").xlBlanks 
    If Not rng1 Is Nothing Then rng1.Value = Format(Now(), "mm-dd-yyyy") 
End Sub 

當我運行此代碼時,我收到運行時錯誤「1004」。有人可以幫我弄這個嗎?

+0

列U中的哪一行是否要測試?此外,最好發佈*真實*代碼(即使它不起作用),而不是僞代碼。實際的代碼更清楚地向我們顯示了具體問題;) –

+0

我試圖測試所有沒有附加到當前日期的行。因此,當插入新數據時,系統會看到它需要今天的日期並將其放入U列 – zach123

回答

0

首先,您想查找實際具有數據的單元格的範圍,因爲您不希望檢查整個行本身爲空的列U的行。因此,假設列A中可以找到最後一行數據,您可以使用它來設置搜索範圍。

With Worksheets("Sheet1") 'qualify sheet, change name as needed 

    Dim lRow as Long 
    lRow = .Range("A" & .Rows.Count).End(xlUp).Row 

然後,可以設置搜索範圍是從第1行至lRow,假設數據是在一個連續範圍左到右,頂部至底部在A1開始。 (On Error語句是必需的,因爲如果空白單元格不在範圍內,Excel將引發錯誤)。

Dim rngSearch as Range 
    On Error Resume Next 
    Set rngSearch = .Range("U1:U" & lRow).SpecialCells(xlCellTypeBlanks) 
    On Error GoTo 0 

如果設置了範圍,那麼您可以立即在上面的代碼中輸入值(在上面的代碼中)。

If Not rngSearch is Nothing Then rngSearch.Value = Format(Now(), "mm-dd-yyyy") 

End With 
+0

謝謝! – zach123

+0

很棒@ zach123。請標記爲已回答,以便其他人知道前進。 –