У меня есть это программное обеспечение, которое настроено на l oop через набор данных и вытягивает строки в соответствии с searchTerm на указанной странице c. Я создал две подпрограммы, чтобы выбрать два разных набора данных из одной строки, и я надеялся объединить их.
Public Sub addToMailchimpNameEmail()
Dim datasheet As Worksheet
Dim reportsheet As Worksheet
Dim findthisstring As String
Dim finalrow As Long
Dim i As Long
Set datasheet = ThisWorkbook.Worksheets("Registration Sheet") '<== I have set this up as sheet names not code names
Set reportsheet = ThisWorkbook.Worksheets("Add to MailChimp")
findthisstring = reportsheet.Range("H2").Value
Worksheets("Registration Sheet").Activate
With datasheet
finalrow = .Cells(.Rows.Count, 1).End(xlUp).Row
Dim unionRng As Range
For i = 2 To finalrow
If Cells(i, 15) = findthisstring Then '< in column O
If Not unionRng Is Nothing Then
Set unionRng = Union(unionRng, .Range(.Cells(i, 2), .Cells(i, 4))) ' 'Select Cols B to D to copy
Else
Set unionRng = .Range(.Cells(i, 2), .Cells(i, 4))
End If
End If
Next i
End With
If Not unionRng Is Nothing Then
If IsEmpty(reportsheet.Range("A150").End(xlUp)) And reportsheet.Range("A150").End(xlUp).Row = 1 Then
unionRng.Copy reportsheet.Range("A1")
Else
unionRng.Copy reportsheet.Range("A150").End(xlUp).Offset(1, 0)
End If
End If
Worksheets("Add to MailChimp").Activate
End Sub
Вот второй
Public Sub addToMailchimpCityState()
Dim datasheet As Worksheet
Dim reportsheet As Worksheet
Dim findthisstring As String
Dim finalrow As Long
Dim i As Long
Set datasheet = ThisWorkbook.Worksheets("Registration Sheet") '<== I have set this up as sheet names not code names
Set reportsheet = ThisWorkbook.Worksheets("Add to MailChimp")
findthisstring = reportsheet.Range("H2").Value
Worksheets("Registration Sheet").Activate
With datasheet
finalrow = .Cells(.Rows.Count, 1).End(xlUp).Row
Dim unionRng As Range
For i = 2 To finalrow
If Cells(i, 15) = findthisstring Then '< in column O
If Not unionRng Is Nothing Then
Set unionRng = Union(unionRng, .Range(.Cells(i, 9), .Cells(i, 11))) ' 'Select Cols I to K to copy
Else
Set unionRng = .Range(.Cells(i, 9), .Cells(i, 11))
End If
End If
Next i
End With
If Not unionRng Is Nothing Then
If IsEmpty(reportsheet.Range("A150").End(xlUp)) And reportsheet.Range("A150").End(xlUp).Row = 1 Then
unionRng.Copy reportsheet.Range("A1")
Else
unionRng.Copy reportsheet.Range("A150").End(xlUp).Offset(1, 3)
End If
End If
Worksheets("Add to MailChimp").Activate
End Sub
Разница только в разделах Set unionRng
, в которых я выбираю разные столбцы. Мне не нужно указывать диапазон, если кто-то может сказать мне, как выбрать кол 2,3,4,9,10,11.
Спасибо!