मैंने अपना कोड वर्कशीट चेंज इवेंट में अपडेट कर दिया है कि जब भी Sheet15.Range("$B$2") मान बदलते हैं या अपडेट करते हैं तो मेरा कोड चलेगा।

लेकिन यह काम नहीं करता मुझे पता नहीं क्यों?

और एक और चीज जो मैं चाहता हूं वह वही मूल्य (जिसे कॉपी किया गया है) नीचे दिए गए कोड द्वारा चिपकाया जाना चाहिए

sheet8.Range(G18:G)

इस तकनीक का प्रयोग करके

lastR5 = Sheet8.Range("F" & Rows.Count).End(xlUp).Row

समस्या के प्रति आपकी मदद की बहुत सराहना की जाएगी।

मायकोड।

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range
    Set KeyCells = Sheet15.Range("$B$2")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then

        
          Dim lastR4 As Long
lastR4 = Sheet4.Range("E" & Rows.Count).End(xlUp).Row 'last row on E:E col
Sheet4.Range("F11:F" & lastR4).Value = Sheet15.Range("A" & _
   WorksheetFunction.Match(Sheet1.Range("B7").Value, Sheet15.Range("A:A"), 0)).Offset(0, 1)
      
End If
End Sub
0
user14807564 22 जिंदा 2021, 14:03
कृपया इस पर एक नजर डालें।
 – 
user14807564
22 जिंदा 2021, 14:04
क्या आप उपरोक्त कोड को शीट15 में चलाने का प्रयास करते हैं? और क्या आप कोड चलाना चाहते हैं यदि सेल "B2" में मान बदल दिया गया है?
 – 
FaneDuru
22 जिंदा 2021, 14:23
@FaneDuru, हाँ मैंने कोशिश की लेकिन कुछ नहीं हुआ?
 – 
user14807564
22 जिंदा 2021, 14:24
और आप किसी भी तरह से लक्ष्य मूल्य का उपयोग नहीं करते हैं। क्या ये वही है जो तुम चाहते हो? "बी2" में परिवर्तन होने पर केवल कोड चलाने के लिए? यदि हां, तो कृपया मेरे द्वारा पोस्ट किए गए कोड को आजमाएं। यदि नहीं, तो कृपया बेहतर वर्णन करें कि क्या किया जाना है...
 – 
FaneDuru
22 जिंदा 2021, 14:25

1 उत्तर

सबसे बढ़िया उत्तर

यदि ईवेंट कोड शीट15 कोड मॉड्यूल से संबंधित है, तो कृपया अगले का उपयोग करें:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$B$2" Then Exit Sub
    
    Dim lastR4 As Long
    lastR4 = Sheet4.Range("E" & rows.count).End(xlUp).row 'last row on E:E col
    Sheet4.Range("F11:F" & lastR4).Value = Sheet15.Range("A" & _
       WorksheetFunction.match(Sheet1.Range("B7").Value, Sheet15.Range("A:A"), 0)).Offset(0, 1)
End Sub

संपादित:

यदि B2 सेल किसी सूत्र का परिणाम रखता है, तो आपको शीट `गणना~ घटना का उपयोग करना चाहिए, इस प्रकार:

Private Sub Worksheet_Calculate()
    Static b2Val As String
    If b2Val = "" Then b2Val = Sheet15.Range("B2").Value: GoTo OverCheck
    If Sheet15.Range("B2").Value = b2Val Then Exit Sub
    
OverCheck:
    Dim lastR4 As Long
    lastR4 = Sheet4.Range("E" & rows.count).End(xlUp).row 'last row on E:E col
    Sheet4.Range("F11:F" & lastR4).Value = Sheet15.Range("A" & _
       WorksheetFunction.match(Sheet1.Range("B7").Value, Sheet15.Range("A:A"), 0)).Offset(0, 1)
End Sub
0
FaneDuru 22 जिंदा 2021, 15:23
यदि लक्ष्य.पता <> "$B$2" तो उप से बाहर निकलें इस पंक्ति में पत्रक15 कैसे जोड़ें
 – 
user14807564
22 जिंदा 2021, 14:37
@लर्निंग: इसकी कोई जरूरत नहीं... यह एक्टिव शीट पर काम करता है जो कि यह है।
 – 
FaneDuru
22 जिंदा 2021, 14:51
हाँ मुझे यह पता है। लेकिन B2 मान स्वचालित रूप से बदल जाएगा यह एक सक्रिय पत्रक नहीं होगा। बस उस पर ट्रिगर सेट करें।
 – 
user14807564
22 जिंदा 2021, 14:56
@लर्निंग: मैं आपको नहीं समझ सकता... आप क्या मतलब चाहते हैं? यदि यह कार्यपत्रक का उपयोग करने योग्य नहीं है तो समस्या कहाँ है? यह हमेशा वही काम करेगा, क्योंकि सक्रिय शीट शीट 15 है। यह हमेशा इस पत्रक15 को संदर्भित करेगा।
 – 
FaneDuru
22 जिंदा 2021, 15:02
मैं यह कहने की कोशिश कर रहा हूं कि यदि शीट 9 खुला है और शीट 15। रेंज (बी 2) मान सूत्र द्वारा बदल दिया गया है तो कोड अभी भी काम करेगा। मैं अभी इसे स्पष्ट कर रहा हूं।
 – 
user14807564
22 जिंदा 2021, 15:09