Вытягивание текста из нескольких листов - PullRequest
0 голосов
/ 15 апреля 2020

Я хочу перетащить ячейки с определенным текстом на несколько листов и поместить их на новый лист. Я застрял в создании всего oop, или просто общего кода, который позволил бы мне использовать то, что у меня есть, более чем на одном листе.

Вот мой код:

 Sub EnzymeInteractions()
' Copy EPC cells Macro
 Dim bottomL As Integer
 Dim x As Integer
 bottomL = Sheets("Enzyme Interactions (110)").Range("I" & Rows.Count).End(xlUp).Row: x = 1

 Dim c As Range
 For Each c In Sheets("Enzyme Interactions (110)").Range("I:I" & bottomI)
 If c.Value = "EPC" Then
 c.EntireRow.Copy Worksheets("sheet4").Range("A" & x)
 x = x + 1
 End If
 Next c

' CombineColumns Macro
Dim rng As Range
Dim iCol As Integer
Dim lastCell As Integer

Set rng = ActiveCell.CurrentRegion
lastCell = rng.Columns(1).Rows.Count + 1

For iCol = 2 To rng.Columns.Count
    Range(Cells(1, iCol), Cells(rng.Columns(iCol).Rows.Count, iCol)).Cut
    ActiveSheet.Paste Destination:=Cells(lastCell, 1)
    lastCell = lastCell + rng.Columns(iCol).Rows.Count
Next iCol

' RemoveBlanks Macro
Cells.Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlUp
Range("A9").Select

End Sub

Все отлично работает помимо того факта, что я не знаю, как использовать этот марко на нескольких листах (около 10).

1 Ответ

1 голос
/ 15 апреля 2020

Вы можете добавить параметр в свою подпрограмму и передать в каждый лист, который будет обрабатываться в качестве аргумента.

sub Main()
    EnzymeInteractions Sheets("Enzyme Interactions (110)")
    EnzymeInteractions Sheets("Enzyme Interactions (120)")
    'etc
End sub


Sub EnzymeInteractions(ws As Worksheet)

    'use ws instead of (eg) Sheets("Enzyme Interactions (110)")

End Sub

Вам необходимо исправить вторую половину подпрограммы, чтобы исключить использование ActiveCell / ActiveSheet: вы всегда должны использовать явные ссылки на диапазон / лист там, где можете.

См .: Как не использовать Select в Excel VBA для получения рекомендаций по этому вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...