जब किसी को स्प्रैडशीट में उपयोगकर्ताफॉर्म डेटा से अपना रिकॉर्ड हटाने की आवश्यकता होती है, तो इसका एक आसान तरीका जानने का प्रयास करना। आदर्श रूप से, मैं चाहता हूं कि उपयोगकर्ता उपयोगकर्ताफॉर्म खोलें, delete entry पर क्लिक करें और फिर उनके लिए एक इनपुट बॉक्स पॉप अप होगा ताकि वे अपनी उपयोगकर्ता आईडी टाइप कर सकें और फिर उपयोगकर्ताफॉर्म तालिका में उस पंक्ति की खोज करेगा और हटा देगा प्रवेश।

मैं जो हासिल करने की कोशिश कर रहा हूं उसका एक खोल यहां दिया गया है:

Option Explicit
Public Sub deleteData(rngColumn As Range, strSelector As String)

Dim rngCell As Range
Dim rngToDelete As Range
Set strSelector = InputBox("Enter Employee ID")
Set rngColumn = ThisWorkbook.Worksheets("Data").Columns(3)

For Each rngCell In rngColumn
    If rngCell.Value = strSelector Then
        If rngToDelete Is Nothing Then
            Set rngToDelete = rngCell
        Else
            Set rngToDelete = Union(rngToDelete, rngCell)
        End If
    End If
Next

If Not rngToDelete Is Nothing Then
    rngToDelete.EntireRow.Select
End If

End Sub

लेकिन जब मैं बटन पर क्लिक करने का प्रयास करता हूं तो यह कुछ भी नहीं कर रहा है

0
NidenK 18 जून 2020, 18:12

1 उत्तर

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

उपयोगकर्ता के इनपुट को खोजने और पंक्ति को हटाने के लिए यहां एक सरल कोड दिया गया है। मैक्रो जोड़ने के लिए, डिज़ाइन मोड में UserForm बटन पर डबल-क्लिक करने से स्वचालित रूप से Click ईवेंट बन जाएगा। इस कोड को कोड विंडो में डालें।

    'Assign the worksheet variable
    Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("Data")

    'Assign the InputBox search string variable
    Dim srchID As String: srchID = InputBox("Enter Employee ID")

    'Assign a range variable to the cell where the search string is found
    Dim trgtCel As Range: Set trgtCel = ws.Range("C:C").Find(What:=srchID, LookIn:=xlValues, lookat:=xlWhole)

        'Delete the trgtCel row containing the Employee's Information
        trgtCel.EntireRow.Delete
0
GMalc 18 जून 2020, 17:18