खोज और अपडेट: दो मापदंड (Input_Tab) का उपयोग करके खोजें, फिर स्तंभ डेटा (Input_Tab) को पंक्ति डेटा (Database_Tab) में अपडेट करें


0

मैं कुछ गलत कर रहा हूं। कृपया मेरी मदद करें ... स्थिति: दो टैब प्राप्त करें - Input_Tab और Database_Tab। इनपुट डेटा का उपयोग करके डेटाबेस अपडेट करना चाहते हैं। INPUT TAB: Input_Tab कॉलम A: हेडर की 60 पंक्तियाँ हैं (Staff_ID, Status, Staff_Name, Salary, आदि) Input_Tab कॉलम B: इसमें मानों की 60 पंक्तियाँ हैं (जैसे, Emp001, Active, John Smith, $ 150k, आदि)। DATABASE TAB: Database_Tab में 55 कॉलम होते हैं (60 नहीं, और Input_Tab के समान क्रम में नहीं)। Database_Tab Row 1: में 55 हेडर हैं। Database_Tab Row 2-901: प्रत्येक हैडर के अंतर्गत संबंधित कर्मचारियों के डेटा की 900 पंक्तियाँ हैं। उद्देश्य: दो crieria (Staff_ID और स्थिति, जैसे कि "Emp001" और "Active") का उपयोग करके, Input_Tab से मानों का उपयोग करके Database_Tab को अपडेट करें। (सामान्य एक्सेल बस एक vlookup होगा, लेकिन निश्चित रूप से 900 कर्मचारियों को व्यक्तिगत रूप से अपडेट करने के लिए VBA की आवश्यकता है।)

नीचे मेरा VBA काम नहीं करता है ... कृपया मेरी मदद करें।


उप अद्यतनरोडाटा ()

 Sheets("Input").Activate

 Dim staff_ID As String
 Dim staff_status As String
 Dim found_ID As Range
 Dim found_status As Range

 staff_ID = Sheets("Input").Range("B1").Select
 staff_status = Sheets("Input").Range("B2").Select

 Sheets("Database").Activate

 Dim first_blank_row As Long

 first_blank_row = Cells.SpecialCells(xlCellTypeLastCell).Offset(1, 0).Row

 starting_row = 1

 Dim r As Long

 r = starting_row

 staff_ID = Sheets("Database").Range("a" & r).Value
 staff_status = Sheets("Database").Range("b" & r).Value

 Do While staff_ID <> 0
      Set found_ID = Columns("a:a").Find(what:=staff_ID, LookIn:=xlValues, lookat:=xlWhole)
      Set found_status = Columns("b:b").Find(what:=staff_status, LookIn:=xlValues, lookat:=xlWhole)

     If (found_ID Is Nothing And found_status Is Nothing) Then
        '<<<…Add new data at the end of Database.
         For c = 1 To 500
         Sheets("Database").Cells(first_blank_row, c) = Sheets("Input").Cells(r, c)
         first_blank_row = first_blank_row + 1
         Next c
     Else
        '<<<…else, update existing data.
         For c = 1 To 500
         Sheets("Database").Cells(found_ID.Row, c) = Sheets("Input").Cells(r, c)
         Next c
     End If

 r = r + 1

    Loop

अंत उप

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.