Excel - ماكرو واحد لمهام الصف متعددة

  • القضية
  • حل
  • ملحوظة

القضية

لديّ كتابان منفصلان أحتاج إلى مقارنتهما. المهمة في متناول اليد هي أنني يجب أن أجد نصًا محددًا في المصنف 2 (col A) ثم وجدت مرة واحدة - ثم يتعين علي نسخ الخليتين / الصفحتين التاليتين (col B و C) ولصقه في wkbook 1 (col B و C) لكل صف فردي للنص الموجود. تلك التي لم يتم العثور عليها ، يمكن أن تترك وحدها أو فارغة.

حل

يمكنك استخدام هذا:

 Dim mySearchText As String Dim wb1، wb2 as Workbook Dim sh1، sh2 As Sheets Set wb1 = Workbooks ("Book1") Set wb2 = Workbooks ("Book2") Do While True mySearchText = InputBox ("Enter Text to Search For. Enter blank to لإنهاء العملية. "،" Search for ") إذا (mySearchText =" ") ، ثم إنهاء Sub wb2.Activate wb2BRow = خلايا (65536 ، 2). End (xlUp) .Row wb2CRow = خلايا (65536 ، 3). End xlUp) .Row If (wb2BRow> wb2CRow) ثم wb2row = wb2BRow Else wb2row = wb2CRow End If If wb2row = 1 ثم wb2row = 2 wb1.Activate On Error استئناف التالي إذا ActiveSheet.AutoFilterMode ثم Cells.Select Selection If If .AutoFilterMode = False ثم Rows (1). حدد التحديد. EndFilter End If On Error GoTo 0 Selection.AutoFilter Field: = 1، Criteria1: = "=" & mySearchText، Operator: = xlAnd dim lastRow As Long lastRow = Cells (65536) ، 1). End (xlUp) .Row If (lastRow> 1) ثم النطاق (الخلايا (2 ، 2) ، الخلايا (lastRow ، 3)). حدد Selection.Copy wb2.Activate Cells (wb2row ، 2). تحديد التحديد .PasteSpecial wb2BRow = خلايا (65536 ، 2) (xlUp) .Row wb2CRow = الخلايا (65536 ، 3). End (xlUp) .Row If (wb2BRow> wb2CRow) ثم wb2row = wb2BRow Else wb2row = wb2CRow End إذا wb2row = wb2row + 1 End If Loop 

ملحوظة

بفضل rizvisa1 لهذه النصيحة في المنتدى.

المقال السابق المقالة القادمة

نصائح الأعلى