2013-04-11 62 views
1

我正在寫一個Excel宏,並在下面的部分中顯示名爲「daf」的工作表中的列,並將其與另一個工作表中的單元格進行比較:在Excel宏中的工作表中指定單元格

For i = 2 To 75 
    If Range("the daf!C" + Trim(Str(i))) = Range("scratchpad!Q30") Then 
     notes = notes + Range("scratchpad!P30") 
     Exit For 
    End If 
Next 

問題是它產生的結果是「#Value!」而問題似乎是因爲我在表名中有一個空格,因爲當我用「scratchpad」替換「daf」時,它不會產生錯誤。如果我說的是正確的,那麼當表單名稱中包含空格時,如何引用表單中的單元格?

回答

2

使用

Sheets("the daf").Range("C" & i) 

代替

Range("the daf!C" + Trim(Str(i))) 

實施例:

If Sheets("the daf").Range("C" & i).Value = Sheets("scratchpad").Range("Q30").Value Then

EDIT

如果你仍然想使用你正在使用的方法,然後嘗試這個

Range("'the" & " " & "daf'!C" & i) 
+0

謝謝 - 它的工作!我想知道爲什麼它允許我使用我使用的原始方式?此外,感謝您指出「C」和我的標記,因爲現在我可以瀏覽我的工作表並簡化我做過的事情。 – 2013-04-11 18:45:44

+0

原來使用的方式沒有錯。只是爲了簡單起見,我們不使用這種方式。但是,如果您看到稍後在帖子中添加的修改,您會注意到需要填充空格。因此它比使用'Sheets()'方法更復雜 – 2013-04-11 18:48:11

+0

實際上,儘管我使用了你描述的表單方法,但我發現我原來的錯誤並不是在表單名稱周圍添加單引號。即它應該是例如:Range(「'daf'!A1」) – 2013-04-15 12:23:55

相關問題