मैं अगर यह संभव है पता नहीं है, लेकिन मैं अगर Excel में एक सीमा में खाली है जाँच करना चाहते हैं। तो मैं कैसे लिखूं यदि:एक्सेल दृश्य मूल - का पता लगाने अगर रेंज खाली
Range("A38":"P38")
वीबीए कोड में खाली है?
अग्रिम धन्यवाद।
मैं अगर यह संभव है पता नहीं है, लेकिन मैं अगर Excel में एक सीमा में खाली है जाँच करना चाहते हैं। तो मैं कैसे लिखूं यदि:एक्सेल दृश्य मूल - का पता लगाने अगर रेंज खाली
Range("A38":"P38")
वीबीए कोड में खाली है?
अग्रिम धन्यवाद।
मिले टिप्पणियां मुझे मिल से एक समाधान।
Sub Empty()
If WorksheetFunction.CountA(Range("A38:P38")) = 0 Then
MsgBox "Empty"
Else
MsgBox "Not Empty"
End If
End Sub
ध्यान दें देखें: ** "खाली()" ** वैध प्रक्रिया नाम नहीं है। @ डारन-बार्ट्रप-कुक, मेरा प्रस्तावित संपादन पोस्ट के मूल उद्देश्य से विचलित नहीं होता है और इसके लक्ष्यों को सुरक्षित रखता है। जवाब के लिए –
Dim M As Range
Set M = Selection
If application.CountIf(M, "<>0") < 2 Then
MsgBox "Nothing selected, please select first BOM or Next BOM"
Else
'Your code here
End If
अनुभव मैं सिर्फ तुम कर सकते हो सीखा से:
If Selection.Rows.Count < 2
Then End If`
स्पष्टीकरण थोड़ी देर बाद उपलब्ध कराई जाने वाली (अभी मैं काम कर रहा हूँ)
धन्यवाद, आप भी स्पष्टीकरण क्या तुलना वास्तव में भावी आगंतुकों के लिए क्या कर रही है का एक सा प्रदान कर सकता है? संपादित करें: यह समझने में थोड़ा मुश्किल है कि आपका संपादन मूल उदाहरण के साथ कैसे फिट बैठता है। – Thor
@Thor जब आप Google पर समस्या का समाधान खोजते हैं, तो आपको यह पृष्ठ मिलता है। लेकिन यह पृष्ठ उस समस्या का उत्तर नहीं देता है इसलिए मैंने उस समस्या का उत्तर दिया। मेरा मानना है कि यहां लोग सिर्फ चीजों को अप-वोट नहीं करते हैं। मैं देख सकता हूं कि इससे पहले ही कुछ लोगों की मदद मिली है। – DeerSpotter
क्या आप अभी भी काम कर रहे हैं? –
IsEmpty अगर यह सच है रिटर्न परिवर्तनीय अनियमित है, या स्पष्ट रूप से खाली करने के लिए सेट है; अन्यथा, यह झूठा रिटर्न देता है। यदि अभिव्यक्ति में एक से अधिक चर शामिल हैं तो झूठी हमेशा वापस आती है। IsEmpty केवल वेरिएंट के लिए सार्थक जानकारी देता है। (https://msdn.microsoft.com/en-us/library/office/gg264227.aspx)। तो तुम अलग रेंज में हर कोशिका की जांच करना चाहिए:
Dim thisColumn as Byte, thisRow as Byte
For thisColumn = 1 To 5
For ThisRow = 1 To 6
If IsEmpty(Cells(thisRow, thisColumn)) = False Then
GoTo RangeIsNotEmpty
End If
Next thisRow
Next thisColumn
...........
RangeIsNotEmpty:
बेशक
यहाँ COUNTA समारोह के साथ समाधान की तुलना में अधिक कोड है जो रिक्त कक्षों नहीं गिनती हैं, लेकिन गोटो छोरों अंतरायन सकता है अगर कम से कम एक नहीं खाली कक्ष पाया जाता है और अपने कोड को तेज़ी से करें यदि विशेष रूप से सीमा बड़ी है और आपको इस मामले का पता लगाने की आवश्यकता है। यह भी मेरे लिए यह कोड समझना आसान है कि यह क्या कर रहा है, Excel CountA फ़ंक्शन के साथ जो VBA फ़ंक्शन नहीं है।
एक्सेल मैक्रो कोड (यदि संकलन संभव है तो पता नहीं) कुछ समय लगता है जब आपके पास बड़ी संख्या में पुनरावृत्ति होती है। यदि आप पहले से ही निर्धारित कर चुके हैं कि सीमा में कुछ सेल खाली नहीं है और आप इसे संसाधित करना चाहते हैं, लेकिन यह निर्धारित करने की जांच है कि कोई सीमा खाली है या नहीं, यानी यदि आपका कोड भी आवश्यक है) तो तेज़ होना चाहिए और शायद स्वीकृत उत्तर (काउंटरए) का उपयोग करके बहुत तेज।एक वीबी लूप के लिए एक "मूल" फ़ंक्शन का उपयोग करना जो वही करता है जो तेजी से चलने वाले समय तक पहुंचता है। –
यह हमेशा काम नहीं करता है। उदाहरण के लिए यदि आपके पास एक श्रेणी है जो चयन के बाद निरंतर चयन नहीं है (मान लें कि आपकी श्रेणी चयन 1 सेल छोड़ देता है तो यह 5 कोशिकाओं को छोड़ देता है, 1 सेल पर वापस जाता है, आदि) तो यह त्रुटि हो जाएगी। – DeerSpotter
एक अन्य संभावित समाधान। रिक्त कक्षों की गणना करें और कोशिकाओं की कुल संख्या
Sub Emptys()
Dim r As range
Dim totalCells As Integer
'My range To check'
Set r = ActiveSheet.range("A1:B5")
'Check for filled cells'
totalCells = r.Count- WorksheetFunction.CountBlank(r)
If totalCells = 0 Then
MsgBox "Range is empty"
Else
MsgBox "Range is not empty"
End If
End Sub
एपीआई से परामर्श करें (यह पिया है, लेकिन COM जो VBA में प्रयोग किया जाता है जैसा होना चाहिए) से है कि मूल्य घटाना: http://msdn.microsoft.com /en-us/library/microsoft.office.interop.excel.range_members.aspx (गणना संपत्ति, शायद) –
मैं बहुत VBA के लिए नया हूँ तो यह मेरे लिए भावना का एक बहुत नहीं बनाते हैं :) – Kano
'रेंज ("A38: P38")। Count', http://msdn.microsoft.com/en-us/library/aa139976%28v=office.10%29.aspx –