Я ищу код, который выбирает указанный диапазон в строке, где столбец A имеет значение х - PullRequest
0 голосов
/ 30 января 2019

screenshot В идеале, мне нужно отправить по электронной почте строки разделенного диапазона с "x" в их столбце, я попробовал код, и он работает хорошо, но единственная проблема заключается в том, что он отправляет 3 электронных письма для 3 строк, но яхочу отправить все записи в одном письме.Я смог сделать это, используя код VBA, который преобразует выбранный диапазон в HTML и отправляет его по электронной почте.Теперь я хочу автоматизировать выделение. Так что в основном мне нужно выбрать указанный диапазон любой строки, в первой колонке которой стоит «x».

Я попробовал код, но он выбирает только последнюю строку, содержащую «Икс".Ссылка на изображение, показывающее, что именно я ищу - https://imgur.com/a/Zq97ukL

Sub Button3_Click()
Dim lRow As Integer
Dim i As Integer
Dim toDate As Date
Dim Sheets As Worksheet
Dim r1 As Range

lRow = Cells(Rows.Count, 2).End(xlUp).Row

For i = 2 To lRow
  If (Cells(i, 1)) = "x" Then  'change this range

      Set r1 = Range(Cells(i, 2), Cells(i, 4))
      r1.Select

    On Error Resume Next

    On Error GoTo 0
    Cells(i, 10) = "Selected " & Date + Time 'column J
End If
Next i
ActiveWorkbook.Save

End Sub

1 Ответ

0 голосов
/ 30 января 2019

jsheeran опубликовал большую часть этого, но удалил свой ответ, потому что он не был закончен.

Как уже говорилось ранее, вероятно, нет причин выбирать что-либо.

Sub Button3_Click()

Dim lRow As Long
Dim i As Long
Dim toDate As Date
Dim Sheets As Worksheet
Dim r1 As Range

lRow = Cells(Rows.Count, 2).End(xlUp).Row

For i = 2 To lRow
    If Cells(i, 1).Value = "x" Then
        Set r1 = Union(IIf(r1 Is Nothing, Cells(i, 2).Resize(, 3), r1), Cells(i, 2).Resize(, 3))
        Cells(i, 10).Value = "Selected " & Date + Time
    End If
Next i

If Not r1 Is Nothing Then r1.Select

ActiveWorkbook.Save

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