0
我一直在盯着這段代碼這麼久,我想我錯過了很簡單的事情。這一聲明的目的是設置「lastRowCompass」可變(範圍)作爲該塔的第一個空單元格:VBA:爲什麼我的範圍偏移返回0(或空)?
Set lastRowCompass = Cells(Rows.Count, 2).End(xlUp).Offset(1, 0)
一旦變量設置,我想用它在一個循環像這樣:
For i = lastRowCompass To Range("D" & Rows.Count).End(xlUp).Row
If ActiveSheet.Cells(i, 4) <> "" Then
Cells(i, 4).Offset(0, -2) = hireDate
End If
Next
該變量被聲明爲一個範圍,所以這是非常混亂的。當我遍歷代碼時,即使在執行set語句之後,i = 0。有沒有人有什麼建議?我看過的所有例子都沒有幫助我解決問題。非常感謝!
編輯:我也試過這條線:
Set lastRowCompass =Range("B1").End(xlDown).Offset(1, 0)
這行:
Set lastRowCompass = Range("B" & Rows.Count).End(xlDown).Offset(1, 0)
但我有同時與相同的結果。
在錢上。如果你在立即窗口調試'lastRowCompass',你會看到一個值爲「0」,這是該範圍變量的正確「值」 - 它是一個空單元格(它應該是基於什麼OP正在試圖去做)。如果這不是1x1的範圍,它會拋出一個「不匹配」錯誤。 – 2013-05-06 18:36:13
謝謝你的幫助!我改變了'For i = lastRowCompass'爲'For i = lastRowCompass.Row',它完美的工作!我實際上在我的代碼頂部使用了「Option Explicit」(它只是在示例中未顯示)。 – ARich 2013-05-06 18:53:08