2016-03-02 128 views
4

希望有人可以提供幫助。我需要使用特定的字符串填充單元格範圍內的任何空白/空單元格。我也不知道最後一行會在那個範圍內,所以我首先尋找那個代碼行,因爲我已經將它用於腳本中的另一個函數。下面是我使用的代碼: -用字符串值替換空白/空單元格

LastRow = Cells(Rows.Count, 2).End(xlUp).Row 

    For Each r In Range("AS22:AU" & LastRow) 
     If r.Value2 = vbNullString Then 
      r.Value2 = "Greens" 
     End If 
    Next 

我似乎並沒有得到當我運行代碼的編譯錯誤,它只是不工作,我仍然有同樣的空/空單元格。

任何人都可以闡明我做錯了什麼嗎?

回答

1

您可以在範圍內使用.Replace Method。這會更快。

Range("AS22:AU" & LastRow).Replace "", "Greens", xlWhole 
+0

@Iturner我確實嘗試過,但得到了相同的結果 - 沒有。細胞保持空白。這是我最初的LastRow = Cells(Rows.Count,2).End(xlUp).Row With Range(「AS22:AU」&LastRow) 。替換:=「On Track」 End With – user3088476

+0

單元格內是否有導致單元格顯示爲空白的公式?你調試過,以確保'LastRow'變量返回預期的整數? –

+0

@Iturner我只是運行LastRow並檢查它是否返回值 – user3088476

0

使用IsEmpty()來測試空白。

If IsEmpty(r.Value2) Or Trim(r.Value2) = "" Then 
     r.Value2 = "Greens" 
    End If 

還要注意零長度字符串或空格的單元格。他們顯得空虛,但事實上並非如此。

2

如何:

Sub dural() 
    Dim r As Range, LastRow As Long 

    LastRow = Cells(Rows.Count, 2).End(xlUp).Row 
    For Each r In Range("AS22:AU" & LastRow) 
     If r.Text = "" Then r.Value = "Greens" 
    Next r 
End Sub 

這將改變:

  • 真正的空單元格包含公式
  • 細胞返回字符作爲常量
  • 細胞
+0

這也不起作用,細胞保持空白 - 關於這是什麼的任何線索 – user3088476

+0

@ user3088476我懷疑'LastRow' ............方程中的** 2 **是你確定你想要列** B **來控制循環的結束? –

+0

B列是我知道的一列,我將在最後一行包含一個值,我正在複製的AS-AU列可能不包含最後一行內的值,這就是爲什麼我在B列上搜索的原因。 – user3088476