2015-02-09 89 views
0

我快要瘋了!我真的很努力地讓範圍對象正確。如果我進入這個,我總是得到一個錯誤信息:聲明一個範圍

Dim ValidationRange As Range  
Set ValidationRange = Tabelle3.Range(Cells(1, 1), Cells(4, 1)) 

但是,如果它進入的範圍內這樣的,一切都很好:

Dim ValidationRange As Range  
Set ValidationRange = Tabelle3.Range("a1:a4") 

我在做什麼錯?

回答

3

當你聲明的範圍這樣

Set ValidationRange = Tabelle3.Range(Cells(1, 1), Cells(4, 1)) 

真的是發生了什麼事該

Set ValidationRange = Tabelle3.Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(4, 1)) 

因爲cells對象就像一個Range對象,除非一個Range可以由許多細胞, cells只能是一個。無論如何,它們都是針對父對象(表單)進行聲明的。如果沒有指定ActiveSheet。如果Tabelle3不是您當前的活動工作表,則會出現問題,因爲Tabelle3中的範圍不能包含來自另一工作表的單元格。這沒有意義。

這將工作,因爲Cells父是同一母公司的Range

With Tabelle3 
    .Range(.Cells(1, 1), .Cells(4, 1)) 
End With 
+0

謝謝,我現在能夠解決它這個樣子! 範圍(Tabelle3.Cells(7,12),Tabelle3.Cells(16,12)) – fydelio 2015-02-09 22:04:38

+0

@fydelio確保在範圍和單元格上都有「Tabelle3」,否則你只會卡在同樣的船隻,但出於相反的原因。 Tabelle3.Range(Tabelle3.Cells(7,12),Tabelle3.Cells(16,12))' – Brad 2015-02-09 22:05:52

-1

您將範圍指向表格而不是單元格。試試這個:

With Tabelle3 
    .Range(Cells(1, 1), Cells(4, 1)) 
End With 
0

嘗試使用您的代碼而不使用Tabelle3。在範圍說明之前。

Dim ValidationRange As Range 
Set ValidationRange = Range(Cells(1, 1), Cells(4, 1)) 

爲我工作。