Копировать / Вставить ячейки рядом с ячейками, которые имеют определенную строку - PullRequest
1 голос
/ 20 января 2012

Я пытаюсь найти ячейки в определенном столбце со строкой (например, Имена), скопировать соответствующие ячейки в столбце справа (т.е. смещение (0,1)), а затем вставить его в столбец в другой лист. У меня есть следующий код, чтобы найти переменную диапазона, который я хочу. Однако я не могу выбрать его на другом листе!
Когда я использую Sheets(1).MyRange.Copy, он не принимает его. Я имею в виду диапазон неправильно? Что я делаю не так?

Вот код, который я использую для получения MyRange:

Option Explicit

Sub SelectByValue(Rng1 As Range, Value As Double)

Dim MyRange As Range
Dim Cell As Object

 'Check every cell in the range for matching criteria.
For Each Cell In Rng1
    If Cell.Value = Value Then
        If MyRange Is Nothing Then
            Set MyRange = Range(Cell.Address)
        Else
            Set MyRange = Union(MyRange, Range(Cell.Address))
        End If
    End If
Next


End Sub

Sub CallSelectByValue()

 'Call the macro and pass all the required variables to it.
 'In the line below, change the Range, Minimum Value, and Maximum Value as needed
Call SelectByValue(Sheets(1).Range("A1:A20"), "Tom")

End Sub

Еще один вопрос: Вместо того, чтобы указывать точный диапазон, на который нужно смотреть (например, «A1: A20»), я хотел бы посмотреть на все столбцы A. Но я не хочу использовать («A: A» ), поэтому он не будет смотреть на все строки A. Разве нет метода для поиска только в ячейках, которые имеют записи в столбце A?

Большое спасибо.

Al

1 Ответ

1 голос
/ 20 января 2012

Вам нужно только MyRange.Copy.

Чтобы ограничиться только ячейками в столбце А, которые могут иметь значения, вы можете использовать

With Sheet1
   Set rngToSearch = Application.Intersect(.Columns(1), .UsedRange)
  End With

... или, может быть, посмотрите на .SpecialsCells ()

...