2015-07-03 11 views
5

Mevcut hücreden boş olmayan tüm hücreleri, satırın son hücresine seçmek istiyorum.Excel Aralık C'deki boş hücreler yok #

biz boş olmayan hücreleri link bitişik olmadığında bu iyi bir yaklaşım değildir

currentRange.End[XlDirection.xlToRight] 

kullanın. Örneğin, A1, A2, A3, A5, A6 hücreleri boş değildir, daha sonra RangeA1.End[XlDirection.xlToRight] sadece A3'e kadar uzanır, yani RangeA1'e bağlanan son boş olmayan hücre.

Başka bir seçenek:

CreateRange(currentRange, lastRangePossibleinRow).SpecialCells(...) 

Ben 3 sorum var:

  1. currentRange.End[XlDirection.xlToRight] güvenilmez bir çözüm gibi görünüyor. Örneğin, currentRange boşsa, bu yine de 1 hücresini döndürecektir (kendisi).

  2. Seçimi geçerli hücreden Satırdaki son hücreye kadar nasıl genişletirim? CreateRange(currentRange, get_range(currentRange.Row + sheet.Columns.Count.ToString()))? Belki daha iyi bir çözüm var.

  3. Bu aralıktaki hücreler boş değil nasıl toplanır? .SpecialCells(xlCellTypeConstants | xlCellTypeFormulas) çalışmaz, örneğin, bulunmazsa, .SpecialCells(xlCellTypeConstants) bir istisna atar: hiçbir hücre bulunamadı.

cevap

1

Ben VBE yeniyim ama bir çözüm olacağını düşünüyorum

  1. hedefe sen isblank eğer
  2. içlerinden
  3. yinelerler
  4. çek olmayan boşlukları bekliyoruz olduğu bir dizi için
  5. RC[#]
  6. biçimindeki bir dizide yanlış olanların sütun numarasını saklayın ve sonra yalnızca Range("Array(1),Array(2),...").Select.

Sözde kod için özür dilerim ... ve iki ay geciktik. =/

+0

Girişinize sahip olduğunuza sevindim, ve yeni bir şey öğrenmek için asla geç değildir. ;) Cevabınız ile ilgili olarak, kaçınmak istediğim şey tam olarak: yineleme ve döngü için. Bu, 1 milyon hücreden oluşan Excel'de bir satır veya sütunu görüntüleme performansına zarar verir; Birden fazla kontrol etmek istersem bunu birkaç satır/sütun ile çarpın. Bu gibi dahili bir tedavi için sebebi var. Sanırım uzmanlar, deneyimlerime göre daha iyi performans veriyor. – Kenny