2017-02-20 63 views
0

我遇到以下代碼的問題。我希望它遍歷一個範圍(AK2直到數據結束),然後任何時候它發現一個空單元格,它將其值更改爲應收帳款。它沒有這樣做,我也沒有得到任何錯誤通知。我的猜測是,我在設置變量時做了一些錯誤:遍歷範圍並找到空單元格

Option Explicit 

Private Sub Leere() 

Dim rng As range 
Dim rcell As range 
Dim WS As Worksheet 

Set WS = Worksheets("Sheet2") 

Set rng = WS.range("AK2", range("AK2").End(xlDown)) 

For Each rcell In rng 
    If rcell.Value = " " Then 
      rcell.Value = "Accounts Receivable" 
    End If 
Next 
End Sub 

任何想法?

+2

找到一個空白做.value =「」而不是.value =「」(拿出空間) – Zerk

+0

哇,這只是!謝謝 – Urumita

+0

它將如何與isempty(rcell)一起使用? – Urumita

回答

2

使用SpecialCells()

With ws 
    .Range("AK2", .Cells(.Rows.Count, "AK").End(xlUp)).SpecialCells(XlCellType.xlCellTypeBlanks).Value = "Accounts Receivable" 
End With 
+1

作爲其他人的注意事項,如果沒有找到單元格但是可選的「On Error Resume Next」可用於忽略這些情況,則'SpecialCells'導致錯誤 – Slai

+0

@Slai,很好。謝謝 – user3598756

+0

@Urumita,你通過了嗎? – user3598756

0

您應該能夠像這樣的東西來代替空(無公式)細胞:

Set ws = ThisWorkbook.Worksheets("Sheet2") 

Set rng = ws.Range("AK2", ws.Cells(ws.Rows.Count, "AK").End(xlUp)) 

rng.Replace "", "Accounts Receivable", xlWhole 

另一個非VBA選項可能條件格式的空白單元格。單元格值將仍然爲空,但顯示的文本更改將爲動態。

相關問題