2016-03-23 13 views
0

Verilen aralıktaki hücreler boşsa bir mesaj göndermeye çalışıyorum. Eğer aralık yaniVBA Menzil içindeki hücreler boşsa (0)

bildirirseniz, gayet iyi çalışır, ancak eğer böyle beyan edersem;

Set OrderRng = Range("c1:" & ActiveSheet.Range("c65536"). End(xlUp).Address).Select` 

Çalışmıyor.

İkinci bağımsız değişken aralığının her zaman doğru hücreleri vurguladığı için doğru olarak bildirildiğini biliyorum.

Tüm kodum şöyle görünüyor;

> Sub BlankCell() Dim OrderRng As Range On Error Resume Next 
> 
>  Set OrderRng = Range("c1:" & ActiveSheet.Range("c65536").End(xlUp).Address).Select 
> 
> ' Set OrderRng = [C1: C41] ' Rm'd for testing 
> 
> Set OrderRng = OrderRng.SpecialCells(xlCellTypeBlanks) 
> 
> If Err = 0 Then MsgBox "An Order ID is missing on one of your entries, 
> please amend then try again" End If End Sub 

Neyi yanlış yapıyorum, biliyorum ki belli olacak, ama bana değil.

çok teşekkürler

+0

Aldığınız hatayı paylaşmak yararlı olacaktır. Bu durumda, muhtemelen "Tür Uyuşmazlığı" – JNevill

+0

Lütfen "Activeheet" veya "Usedrange" kullanmayın, hatta son satırı bulmak için hücreleri de kodlayın. [THIS] 'i görmek isteyebilirsiniz (http://stackoverflow.com/questions/11169445/error-in-finding-last-used-cell-in-vba) Ayrıca '.Select' kullanmaktan kaçının. [BU] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros) –

cevap

1

düzeltmek için, sadece menzil değişkeni set hattının ucundan .select kaldırın:

Set OrderRng = Range("c1:" & ActiveSheet.Range("c65536").End(xlUp).Address) 

.select yöntem TRUE veya FALSE değer döndürür, böylece bir ile bitirmek Set OrderRng, TRUE için boolean olmayan bir aralık olan tür uyumsuzluğu.

select için 100% hiçbir nedeniniz yok ve kodunuz devam ediyor olmalıdır.

+0

'u görmek isteyebilirsiniz. Hızlı yanıtlarınız için çok teşekkürler, Kullanarak takdir etmeyin. Yaptığım seçimleri görebilseydim. – Prospidnick