2011-02-02 12 views
14

मेरे पास एक एक्सेल शीट है जिसमें मुझे एक विशिष्ट कॉलम में अंतिम गैर खाली सेल खोजने की आवश्यकता है।पंक्ति में अंतिम खाली सेल नहीं; एक्सेल वीबीए

मैं यह कैसे कर सकता हूं?

नीचे दिए गए मेरे लिए यह चयन करेगा, लेकिन यह पहले खाली सेल नहीं होगा, मुझे पंक्ति में अंतिम खाली खाली सेल की आवश्यकता नहीं है।

Worksheets("DTCs").Range("A29").End(xlToRight).Select

+4

@ExcelDevelopers अर्थात्: तो बंद करने के लिए मतदान सबसे पुराने एसओ सवाल का डुप्लिकेट जो एक ही चीज़ पूछता है। एसओ की तुलना में अन्य पृष्ठों पर उत्तर किसी भी समय गायब हो सकता है। –

+0

संभावित डुप्लिकेट [वीबीए में अंतिम उपयोग किए गए सेल को खोजने में त्रुटि] (https://stackoverflow.com/questions/11169445/error-in-finding-last-used-cell-in-vba) – Masoud

उत्तर

10

मैं यह सिर्फ दूसरी दिशा से खोजते हैं काम कर सकते हैं लगता है, तो कुछ की तरह:

Worksheets("DTCs").Range("IV29").End(xlToLeft).Select 

हालांकि शायद चतुर्थ Excel के संस्करण के आधार पर कुछ और करने के लिए परिवर्तित करने की आवश्यकता होगी (यह 2003 में काम करता प्रतीत होता है)।

+7

'वर्कशीट्स ("डीटीसी") .ल्स (1, कॉलम। काउंटर)। एंड (xlToLeft)। चयन करें –

+2

टिम की टिप्पणी सभी एक्सेल संस्करणों के लिए काम करती है और बेहतर दृष्टिकोण है। एकमात्र अपवाद तब होते हैं जब पंक्ति पूरी तरह से खाली होती है, या एक चरम मामला जहां पूरी पंक्ति भर जाती है। इन दोनों situtaions के परिणामस्वरूप ए 1 होगा, जो कि अंतिम अंतिम उपयोग किए गए सेल को सत्यापित करने के लिए एक और परीक्षण ट्रिगर करना चाहिए। – brettdj

13

मैं मेरी टिप्पणी पर विस्तार किया है इसके बाद के संस्करण समाधान है कि

  • पंक्ति 1 में उपयोग नहीं करते हैं Select
  • अंतिम सेल के लिए पूरा उपयोग किया जा रहा
  • खाली किया जा रहा है पूरी पंक्ति को पूरा प्रदान करने के लिए
  • पूरी पंक्ति पूर्ण होने के लिए पूरा करें

Find सेको में विधि nd कोड पहली गैर खाली सेल की स्थापना की एक अधिक सीधा तरीका है

इस लाइन Set rng1 = ws.Rows(1).Find("*", ws.[a1], xlValues, , xlByColumns, xlPrevious) कहते हैं, शीट सेल A1 "DTCa" तो पीछे की ओर देखने में शुरू (यानी पंक्ति 1 में अंतिम सेल से) ROW1 में कॉलम द्वारा कुछ भी ढूंढने के लिए (*)। इस विधि या तो पिछले गैर खाली लगता है या Nothing देता है, एक रिक्त पंक्ति

विशिष्ट चेक के xltoLeft का उपयोग कर

Sub Method1() 
Dim ws As Worksheet 
Dim rng1 As Range 
Set ws = Sheets("DTCs") 
If ws.Cells(1, Columns.Count) = vbNullString Then 
    Set rng1 = ws.Cells(1, Columns.Count).End(xlToLeft) 
    If rng1.Column <> 1 Then 
     'return last used cell 
     MsgBox "rng1 contains " & rng1.Address(0, 0) 
    Else 
    If ws.[a1] = vbNullString Then 
      MsgBox ws.Name & " row1 is completely empty", vbCritical 
     Else 
      'true last used cell is A1 
      MsgBox "rng1 contains " & rng1.Address(0, 0) 
     End If 
    End If 
Else 
    'last cell is non-blank 
    MsgBox ws.Cells(1, Columns.Count) & " contains a value", vbCritical 
End If 
End Sub 

सिफारिश

Sub Method2() 
    Dim ws As Worksheet 
    Dim rng1 As Range 
    Set ws = Sheets("DTCs") 
    Set rng1 = ws.Rows(1).Find("*", ws.[a1], xlFormulas, , xlByColumns, xlPrevious) 
    If Not rng1 Is Nothing Then 
     MsgBox "rng1 contains " & rng1.Address(0, 0) 
    Else 
     MsgBox ws.Name & " row1 is completely empty", vbCritical 
    End If 
End Sub 
संबंधित मुद्दे