Nukopijuokite eilutę ar eilutes iš kiekvienos darbaknygės aplanke naudodami „Microsoft Excel“ VBA

Anonim
  • Makrokomandos nukopijuos kiekvieno failo, esančio aplanke C: \ Data, pirmojo darbalapio dalį į pirmąjį jūsų darbaknygės darbalapį.
  • Pirmoji makrokomanda kopijuoja įprastai, o antroji - kopijuoja reikšmes.
Sub CopyRow () Dim bazinė knyga kaip darbaknygė Dim mybook kaip darbaknygė Dim sourceRange As Range Dim distrange As Range Dim rnum As Long Dim i As Long Dim a As Long Application.ScreenUpdating = False With Application.FileSearch .NewSearch .LookIn = "C: \ Duomenys ".SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Execute ()> 0 Tada Nustatykite basebook = ThisWorkbook rnum = 1 For i = 1 To .FoundFiles.Count Set mybook = Workbooks.Open (.FoundFiles (i)) Set sourceRange = mybook.Worksheets (1). Eilutės ("3: 5") a = sourceRange.Rows.Count Set destrange = basebook.Worksheets (1) .Ląstelės (rnum, 1) sourceRange.Copy destrange mybook.Close rnum = i * a + 1 Kitas i pabaiga Jei baigiasi taikant programą. ScreenUpdating = Tikroji pabaiga Sub Sub CopyRowValues ​​() Dim bazinė knyga kaip darbaknygė Dim mybook kaip darbaknygės Dim šaltinis Range As Range Dim Dimrange as Range Dim rnum As Long Dim i As Long Dim a Long Application. = Netiesa naudojant Application.FileSearch .NewSearch .LookIn = "C: \ Data" .SearchSubFolders = Netiesa .FileType = msoFi leTypeExcelWorkbooks If .Execute ()> 0 Tada Nustatykite basebook = ThisWorkbook rnum = 1 Jei i = 1 To .FoundFiles.Count Set mybook = Workbooks.Open (.FoundFiles (i)) Nustatykite sourceRange = mybook.Worksheets (1). Rows ( "3: 5") a = sourceRange.Rows.Count Su sourceRange Nustatykite destrange = basebook.Worksheets (1) .Ląstelės (rnum, 1). _ Keisti dydį (.Rows.Count, .Columns.Count) Baigti su destrange.Value = sourceRange.Value mybook.Close rnum = i * a + 1 Kitas i pabaiga, jei baigiasi su Application.ScreenUpdating = True End Sub