У меня есть книга Excel, которая состоит из 5 рабочих листов, содержащих данные, и 6-й рабочей таблицы с кнопкой, которая при нажатии извлекает данные из других 5 листов для обеспечения комбинированного просмотра.
Данные востальные 5 листов немного отличаются друг от друга, за исключением нескольких общих столбцов, поэтому я должен показывать данные в комбинированном представлении как один под другим со страной в строке 1 и заголовками в строке 2, если это возможно, жирным шрифтомдля данных, извлекаемых на каждом листе.
Я могу запустить макрос с помощью кнопки для извлечения данных, но я не могу извлечь все данные, как требуется, но по какой-то причине мой код для настройкистроки 1 и 2 для каждого листа, выделенного жирным шрифтом, не работают (приведенный ниже код показывает, как я пытаюсь получить первую строку, выделенную жирным шрифтом).
Следует иметь в виду, что объем данных на каждомлист (количество строк) может отличаться при каждом запуске макроса.
Цените любую помощь.
Option Compare Text
Sub OptionCompareText()
End Sub
Sub SearchMultipleSheets()
Dim arr(999, 14) As Variant, r As Range
Dim ws As Worksheet, i As Integer, s As String
With Sheets(1)
's = Range("b10").Value
.Range("a13").Resize(.UsedRange.Rows.Count, UsedRange.Columns.Count).ClearContents
End With
For Each ws In Worksheets
If ws.Name <> Sheets(1).Name Then
With ws
For Each r In .Range("a1", .Range("a" & .Rows.Count).End(xlUp))
If r.Value & r.Offset(0, 1).Value & r.Offset(0, 2).Value & r.Offset(0, 3).Value & r.Offset(0, 4).Value _
& r.Offset(0, 5).Value & r.Offset(0, 6).Value & r.Offset(0, 7).Value & r.Offset(0, 8).Value _
& r.Offset(0, 9).Value & r.Offset(0, 10).Value & r.Offset(0, 11).Value & r.Offset(0, 12).Value & r.Offset(0, 13).Value _
Like "*" & s & "*" Then
'arr(i, 0) = ws.Name
arr(i, 0) = r.Value
arr(i, 1) = r.Offset(0, 1).Value
arr(i, 2) = r.Offset(0, 2).Value
arr(i, 3) = r.Offset(0, 3).Value
arr(i, 4) = r.Offset(0, 4).Value
arr(i, 5) = r.Offset(0, 5).Value
arr(i, 6) = r.Offset(0, 6).Value
arr(i, 7) = r.Offset(0, 7).Value
arr(i, 8) = r.Offset(0, 8).Value
arr(i, 9) = r.Offset(0, 9).Value
arr(i, 10) = r.Offset(0, 10).Value
arr(i, 11) = r.Offset(0, 11).Value
arr(i, 12) = r.Offset(0, 12).Value
arr(i, 13) = r.Offset(0, 13).Value
i = i + 1
End If
Next r
End With
End If
Next ws
With Sheets(1)
.Range("a13").Resize(i, 14).Value = arr
For Each ws In ActiveWorkbook.Worksheets
With ws.Rows(1)
.Font.Bold = True
End With
Next ws
End With
End Sub