मुझे यह पता लगाने की ज़रूरत है कि स्क्रीन पर कोई सेल दिखाई दे रहा है या नहीं।यह निर्धारित करने के लिए कि वर्कशीट सेल VBA में दृश्यमान/प्रदर्शित किया गया है या नहीं?
दृश्यमान से, मेरा मतलब छुपा नहीं है। मैं विशेष रूप से यह पता लगाने की कोशिश कर रहा हूं कि एक सेल वर्तमान में सक्रिय शीट में प्रदर्शित होता है, या यदि यह प्रदर्शित नहीं होता है, यानी: इसे सक्रिय सक्रिय शीट से स्क्रॉल किया गया है।
मैं ऑनलाइन देखा है, और केवल निम्न कोड है जो मेरे लिए काम नहीं लगता है पा सकते हैं:
Private Sub CommandButton1_Click()
With Worksheets(1).Cells(10, 10)
'MsgBox "Value: " & .Value & ", Top: " & .Top & ", Left: " & .Left
Dim visibleCells As Range
Set visibleCells = Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
If Intersect(Worksheets(1).Cells(10, 10), visibleCells) Is Nothing Then
MsgBox "This cell is not visible."
End If
End With
End Sub
आपकी मदद के लिए अग्रिम धन्यवाद,
मरवन
बस जिज्ञासु ... क्या होगा अगर कहते हैं कि सेल ए 4 छिपा हुआ है और आप कहते हैं कि पंक्तियों 41. आप सेल ए 4 दृश्य या छिपा पर विचार करेंगे तक देख सकता है? इसके अलावा आप उन कोशिकाओं के लिए क्या कहेंगे जो आंशिक रूप से दिखाई दे रहे हैं? –
@ सिद्धार्थ रूट - मैं सेल ए 4 को दिखने के रूप में मानता हूं। जो कुछ मैं पूरा करने की कोशिश कर रहा हूं उस पर कुछ पृष्ठभूमि, मुझे एक विशेष सेल के बाएं और टॉप को खोजने की आवश्यकता है। तो मुझे कोशिकाओं के माध्यम से इसके बाईं ओर और इसके ऊपर की कोशिकाओं के माध्यम से पुन: प्रयास करने की आवश्यकता है। मुझे यह जांचने की ज़रूरत है कि क्या वे कक्ष दिखाई दे रहे हैं, और यदि वे हैं, तो मुझे उनकी चौड़ाई (या ऊंचाई) को जोड़ना होगा। जिस समस्या में मैं अभी चल रहा हूं, वह यह है कि कुछ कोशिकाएं जमे हुए हैं, और दृश्यमान सीमा के हिस्से के रूप में दिखाई नहीं देती हैं। मुझे यकीन नहीं है कि इससे कैसे निपटें। कोई मदद या सुझाव? –
@ सिद्धार्थ रूट - मैंने यह पता लगाया कि सेल को "जमे हुए" या नहीं, निम्न कोड का उपयोग करके: 'फ़ंक्शन सेलइन्स इनफ्रोज़रेंज (सेल के रूप में सेल) ' ' बूंद इनरो बूलियन ' ' कॉल में कॉलम के रूप में कॉलम ' 'अगर (ActiveWindow.SplitRow> 0) फिर' 'inRow = नहीं छेड़छाड़ (सेल, रेंज (सेल (1, 1),' 'सेल (ActiveWindow.SplitRow, 1) .nd (xlEnd))) कुछ भी नहीं है ' 'अंत यदि' 'यदि (ActiveWindow.SplitColumn> 0) फिर' 'inColumn = नहीं अंतर (सेल, रेंज (कक्ष (1, 1), कक्ष (1, ActiveWindow.SplitColumn)। (XlDown))) कुछ भी नहीं है 'अंत अगर ' ' सेलआईएस इनफ्रोज़रेंज = (इनरो या इन कॉलम) ' ' एंड फ़ंक्शन ' –