Excel - viens makro vairāku rindu uzdevumiem

  • Izdevums
  • Risinājums
  • Piezīme

Izdevums

Man ir divas atsevišķas darbgrāmatas, kas man ir jāsalīdzina. Rokasgrāmata 2 ir jāatrod konkrēts teksts darbgrāmatā 2 (A sleja) un vienreiz atrasts - pēc tam ir jāpārkopē nākamās divas šūnas / rindas (B un C kolonna) un ielīmējiet to wkbook 1 (B un C kolonna) par katru atrasto teksta rindu. Tie, kas nav atrasti, var tikt atstāti atsevišķi vai tukši.

Risinājums

To var izmantot:

 Dim mySearchText kā virkne Dim wb1, wb2 Kā darbgrāmatas Dim sh1, sh2 kā lapas Set wb1 = darbgrāmatas ("Book1") Iestatiet wb2 = darbgrāmatas ("Book2") Vai kamēr True mySearchText = InputBox ("Ievadiet tekstu meklēšanai. Ievadiet tukšu lai izietu no operācijas. ", " Meklēt ") Ja (mySearchText =" ") pēc tam iziet no sub wb2.Aktivizējiet wb2BRow = šūnas (65536, 2) .End (xlUp). Rindas wb2CRow = šūnas (65536, 3). xlUp) .Row If (wb2BRow> wb2CRow) Tad wb2row = wb2BRow Else wb2row = wb2CRow Beigas Ja Ja wb2row = 1 Tad wb2row = 2 wb1.Activate On Error Resume Next Ja ActiveSheet.AutoFilterMode tad Cells.Select Selection.AutoFilter beigas Ja Ja ActiveSheet .AutoFilterMode = False Tad rindas (1) .Izvēlieties Selection.AutoFilter End Ja ieslēgta kļūda GoTo 0 Selection.AutoFilter lauks: = 1, kritēriji1: = "=" & mySearchText, Operators: = xlAnd Dim LastRow As Long lastRow = šūnas (65536, 1) .End (xlUp). Rinda Ja (lastRow> 1) Tad diapazons (šūnas (2, 2), šūnas (lastRow, 3)) Atlasiet atlasi.Kopējiet wb2.Aktivizēt šūnas (wb2row, 2). .PasteSpecial wb2BRow = Šūnas (65536, 2) (xlUp) .Row wb2CRow = šūnas (65536, 3) .End (xlUp) .Rinds (wb2BRow> wb2CRow) Tad wb2row = wb2BRow Else wb2row = wb2CRow beigas Ja wb2row = wb2row + 1 beigas, ja cilpa 

Piezīme

Paldies rizvisa1 par šo padomu forumā.

Iepriekšējais Raksts Nākamais Raksts

Top Padomi